反应导航重置并重定向到主屏幕

时间:2017-11-08 08:00:35

标签: reactjs react-native react-navigation

我希望在用户登录后重置导航,然后我们将重定向到主页我试试这个      

        

    const Root = StackNavigator({
                 Unauthorized: { screen: UnAuthorized },
                 Authorized: { screen: Authorized },
               }, {
                    headerMode: 'screen',
                    navigationOptions: {
                    header: null
                 }
         });

       const Authorized = DrawerNavigator({
                        Home: { screen: Home }        
              });

       const UnAuthorized = StackNavigator({
                 Splash: { screen: Splash },
                 Login: { screen: Login },
              });


 await axios.post(url+'rest_users/login',user)
    .then(function (response) {
      dispatch({
        type: LOGGED_IN,
        payload: response.data
      });
      const resetNavigator = NavigationActions.reset({
        index: 0,
        key: null,
        actions: [
          NavigationActions.navigate({
            routeName: 'Authorized',
            action: [
              NavigationActions.navigate({routeName: 'Home'})]
          })
        ],
      });
      dispatch(resetNavigator);

const Root = StackNavigator({ Unauthorized: { screen: UnAuthorized }, Authorized: { screen: Authorized }, }, { headerMode: 'screen', navigationOptions: { header: null } }); const Authorized = DrawerNavigator({ Home: { screen: Home } }); const UnAuthorized = StackNavigator({ Splash: { screen: Splash }, Login: { screen: Login }, }); await axios.post(url+'rest_users/login',user) .then(function (response) { dispatch({ type: LOGGED_IN, payload: response.data }); const resetNavigator = NavigationActions.reset({ index: 0, key: null, actions: [ NavigationActions.navigate({ routeName: 'Authorized', action: [ NavigationActions.navigate({routeName: 'Home'})] }) ], }); dispatch(resetNavigator);

导航显示日志中的重置,但我没有看到任何屏幕移动更改。请帮助我在哪里出错

1 个答案:

答案 0 :(得分:2)

看起来,你正在使用Redux的调度方法,而不是React-Navigation来调度你的resetAction。

您应该做的是将导航道具从您的组件传递到您需要调度resetAction的位置,然后调用ls /run/opt/corp/mydir/test2

相关问题