首页 > 解决方案 > React Navigation Reset Stack Navigator 这是子导航

问题描述

我有一个 TabNavigator 由createBottomTabNavigator

createBottomTabNavigator({
    Tab1: View1,
    Tab2: createStackNavigator({
        SubScreen1: View2,
        SubScreen2: View3
    }),
    Tab3: createStackNavigator({
        SubScreen3: View4,
        SubScreen4: View5,
        SubScreen5: View6
    }),

})

现在让我们说我在Tab3做一些事情,SubScreen3然后按next,同样的SubScreen4,,next现在我在Tab3/SubScreen5,我想要this.props.navigation.navigate('Subscreen 2')哪个工作正常,但是当我Tab3再次去时它仍然在SubScreen5

想要的是重置Tab3SubScreen3每次我转到其他选项卡时。

我试过

navigation.dispatch(
    StackActions.reset(
      {
          index:0, 
          actions:[NavigationActions.navigate('SubScreen2')]
       })
);

但这没有用。

标签: reactjsreact-nativereact-navigation

解决方案


我认为这是因为 SubScreen2 还没有在堆栈中。尝试这个。

navigation.dispatch(
    StackActions.reset(
      {
          index:0, 
          key: null,
          actions:[NavigationActions.navigate({
              routeName: 'Tab2',
              action: NavigationActions.navigate({routeName: 'SubScreen2'})
          })]
       })
);

推荐阅读