Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用react navigation在react native中的不同导航器之间跳转_Javascript_React Native_React Navigation - Fatal编程技术网

Javascript 使用react navigation在react native中的不同导航器之间跳转

Javascript 使用react navigation在react native中的不同导航器之间跳转,javascript,react-native,react-navigation,Javascript,React Native,React Navigation,我有三个导航员。MainNavigator是其他两个(身份验证和活动)的根目录。根据用户是否成功登录,我需要将用户从身份验证堆栈路由到活动堆栈。我该怎么做?我似乎还没有弄明白这一点(来自Angular的新反应) 下面是我用来导航到活动堆栈的代码行: this.props.navigation.navigate('Activities'); 认证: export const AuthNavigator = StackNavigator({ Login: {

我有三个导航员。MainNavigator是其他两个(身份验证和活动)的根目录。根据用户是否成功登录,我需要将用户从身份验证堆栈路由到活动堆栈。我该怎么做?我似乎还没有弄明白这一点(来自Angular的新反应)

下面是我用来导航到活动堆栈的代码行:

        this.props.navigation.navigate('Activities');
认证:

export const AuthNavigator = StackNavigator({
    Login: {
        screen: Login,
    },
    SignUp: {
        screen: SignUp
    },
    Confirm: {
        screen: ConfirmSignUp
    }
}, {
    initialRouteName: 'Login',
    headerMode: 'none',
    animationEnabled: 'true'
});
活动:

export const ActivitiesNavigator = TabNavigator({
    ActivityList: {
        screen: ActivityList
    },
    MyActivityList: {
        screen: MyActivityList
    },
    CreateActivity: {
        screen: CreateActivity
    }
}, {
    initialRouteName: 'ActivityList'
});
主导航器:

export const MainNavigator = StackNavigator({
    Auth: { screen:  AuthNavigator},
    Activities: { screen: ActivitiesNavigator },
}, {
    initialRouteName: 'Auth',
    headerMode: 'none',
    animationEnabled: 'true'
});

这确实有效。睡眠不足使我使用了另一种方法来执行“导航”命令。因此,在我的App.js文件中,我只需要返回MainNavigator,就可以开始了:

render() {

    return (
        <MainNavigator/>
    );
}
render(){
返回(
);
}

您不需要3个导航器。这是使用React Navigation执行此操作的方法

export const AuthNavigator = StackNavigator({
        Login: {
            screen: Login,
        },
        SignUp: {
            screen: SignUp
        },
        Confirm: {
            screen: ConfirmSignUp
        },
        Main: {
            screen: ActivitiesNavigator
       }
    }, {
        initialRouteName: 'Login',
        headerMode: 'none',
        animationEnabled: 'true'
    });
访问重置: 重置操作将擦除整个导航状态,并将其替换为多个操作的结果

在最新的react导航版本:3.3.0中,我使用了:at注册或登录,以便启动主/主流程

从'react navigation'导入{StackActions,NavigationActions};
const resetAction=StackActions.reset({
索引:0,

key:null,//我实际上是这样做的,因为我想以一种可重用的方式对我的应用程序进行模块化。您所做的与我所做的相同,但您没有隔离身份验证导航,而是将其嵌入到主导航中。