我目前坚持我的项目,我有很多嵌套的导航器,我无法弄清楚如何在导航之前重置其中一个。
这是我的导航器结构:(屏幕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模拟器上工作
使用redux集成,您可以使用reset
的NavigationActions
方法:
https://reactnavigation.org/docs/navigators/navigation-actions
在reset
方法示例中,您将找到:
import { NavigationActions } from 'react-navigation'
const resetAction = NavigationActions.reset({
index: 0,
actions: [
NavigationActions.navigate({ routeName: 'Profile'})
]
})
this.props.navigation.dispatch(resetAction)
在反应导航中,tab的嵌套有点复杂,我也遇到了类似的问题
NavigationActions.reset({
index: 0,
key: null,
actions: [
NavigationActions.navigate({routeName: 'routeNameToNavigate'})
]
});
给key
值解决了我的问题并从嵌套导航我root。希望这能解决你的问题。这是一个问题
https://github.com/react-community/react-navigation/issues/1949