反应导航 - 导航到另一个选项卡并重置堆栈

AHi*_*son 19 react-native react-navigation

我正在尝试从一个StackNavigator路由到另一个,这两个都在TabNavigator中.我现在能够通过简单地做到:

this.props.navigation.navigate('Screen3')
Run Code Online (Sandbox Code Playgroud)

但是当我去它时我也想重置那个标签.以下是我的应用导航器的设置方式:

- Main (StackNavigator)
  - LoginScreen
  - MainTabs (TabNavigator)
    - Tab1 (StackNavigator)
      - Screen1
      - Screen2
    - Tab2 (StackNavigator)
      - Screen3
      - Screen4
Run Code Online (Sandbox Code Playgroud)

我如何导航Screen3但重置StackNavigator Tab2

我也尝试过这样做,但无济于事:

let resetAction = NavigationActions.reset({
  index: 0,
  key: 'Tab2',
  actions: [
    NavigationActions.navigate({ routeName: 'Screen3' })
  ],
});

this.props.navigation.dispatch(resetAction);
Run Code Online (Sandbox Code Playgroud)

小智 13

您必须分派两个导航操作,一个用于重置当前选项卡的堆栈,另一个用于导航到下一个屏幕:

let resetAction = StackActions.reset({
  index: 0,
  actions: [
    NavigationActions.navigate({ routeName: 'Screen1' })
  ],
});

this.props.navigation.dispatch(resetAction);
this.props.navigation.navigate('Screen3');
Run Code Online (Sandbox Code Playgroud)

这是一个小吃