我目前仍然坚持我的项目,我有很多嵌套的导航器,我无法弄清楚如何在导航之前重置其中一个。
这是我的导航器结构:(屏幕X是相同的)
因此,当我从屏幕A导航到屏幕X时,我仍然可以导航到其他导航器(B,C,D),因为tabBar仍然存在并且它很好。 但是,如果我在导航器A中打开屏幕X,然后导航到导航器B的屏幕,当我回到导航器时,AI想要登陆屏幕A而不是屏幕X,就像现在一样(屏幕X仍然是在导航器A的堆栈之上)。
要恢复,我的导航实际上: - 导航器A - >屏幕A - >屏幕X - >导航器B - >屏幕B - >返回导航器A但登陆屏幕X
我希望它能做到: - 导航器A - >屏幕A - >屏幕X - >导航器B - >屏幕B - >返回导航器A并登陆屏幕A
我尝试在我的屏幕X导航选项中设置它,但它只适用于导航器A:
tabBarOnPress: () => {
navigation.goBack(navigation.state.key)
},
任何帮助都会受到赞赏,因为我已经坚持了一段时间了。
反应:16.0.0
React Native:https://github.com/expo/react-native/archive/sdk-23.0.0.tar.gz
反应导航:^ 1.0.0-beta.19
目前正在使用iOS模拟器
答案 0 :(得分:0)
使用redux集成,您可以使用reset
的{{1}}方法:
https://reactnavigation.org/docs/navigators/navigation-actions
在NavigationActions
方法示例中,您将找到:
reset
答案 1 :(得分:0)
在反应导航中,tab的嵌套有点复杂,我也遇到了类似于
的东西NavigationActions.reset({
index: 0,
key: null,
actions: [
NavigationActions.navigate({routeName: 'routeNameToNavigate'})
]
});
给出key
值解决了我的问题,并从嵌套导航我。希望这能解决你的问题。这是问题的讨论
https://github.com/react-community/react-navigation/issues/1949