反应导航重置作为子导航的堆栈导航器

时间:2018-08-17 20:43:57

标签: reactjs react-native react-navigation

我有一个由createBottomTabNavigator创建的TabNavigator

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

})

现在假设我在Tab3上,在SubScreen3上做一些事情,然后按next,与SubScreen4next相同,然后现在我在Tab3/SubScreen5上,并且我想this.props.navigation.navigate('Subscreen 2')正常工作,但是当我再次去Tab3时,它仍然在SubScreen5上。

我想要的是每次我转到其他标签时将Tab3重新设置为SubScreen3

我试图

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

但这没用。

1 个答案:

答案 0 :(得分:1)

我认为这是因为SubScreen2尚未在堆栈中。试试这个。

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