使用react-navigation从一个嵌套导航器发送到另一个嵌套导航器

时间:2017-05-28 18:58:07

标签: react-native react-navigation

我想将用户从一个StackNavigator的屏幕发送到另一个StackNavigator的另一个屏幕,这两个屏幕都嵌套在TabNavigator中。

所以,如果我将TabNavigator作为

const MainNavigator = TabNavigator({
  FirstTab: { screen: StackNavigator1 },
  SecondTab: { screen: StackNavigator2 },
});

StackNavigator1有一个屏幕ScreenA

const StackNavigator1 = StackNavigator({
  ScreenA: { screen: ScreenA },
  ScreenB: { screen: ScreenB },
});

StackNavigator2有一个屏幕ScreenC

const StackNavigator2 = StackNavigator({
  ScreenC: { screen: ScreenC },
  ScreenD: { screen: ScreenD },
});

我想将用户从ScreenA发送到ScreenC

我想我应该使用像

这样的东西
const resetAction = NavigationActions.reset({
  index: 0,
  actions: [NavigationActions.navigate({ routeName: 'ScreenC' })],
});
this.props.navigation.dispatch(resetAction);

但我担心ScreenA StackNavigator1 ScreenCStackNavigator2中的react-redux无法了解,所以我需要使用list(X):- X=[]. 吗?

1 个答案:

答案 0 :(得分:0)

我有同样的问题。我解决了我不知道它是否依赖于实现细节。

基本上你得到嵌套导航器的ref。然后你可以拨打this.ref._navigation.***

我是这样做的 - Implementation detail worries - Calling navigate on nested Navigator

你可以随心所欲地将ref传递给许多其他导航员。但是真的没有通过引用,只需要传递你需要的功能,比如this.ref && this.ref._navigation.navigate