我想将用户从一个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
ScreenC
对StackNavigator2
中的react-redux
无法了解,所以我需要使用list(X):- X=[].
吗?
答案 0 :(得分:0)
我有同样的问题。我解决了我不知道它是否依赖于实现细节。
基本上你得到嵌套导航器的ref
。然后你可以拨打this.ref._navigation.***
。
我是这样做的 - Implementation detail worries - Calling navigate on nested Navigator
你可以随心所欲地将ref
传递给许多其他导航员。但是真的没有通过引用,只需要传递你需要的功能,比如this.ref && this.ref._navigation.navigate
。