Javascript 导航到路线回退到现有路线
我正在react native中使用react导航Javascript 导航到路线回退到现有路线,javascript,react-native,react-navigation,react-navigation-stack,Javascript,React Native,React Navigation,React Navigation Stack,我正在react native中使用react导航 const AppNavigator = createStackNavigator({ landing: { screen: TabNavigator }, ...createNavStack(StackRoutes) }, { initialRouteName: 'landing', headerMode: 'screen', defaultNavigationOptions:
const AppNavigator = createStackNavigator({
landing: {
screen: TabNavigator
},
...createNavStack(StackRoutes)
}, {
initialRouteName: 'landing',
headerMode: 'screen',
defaultNavigationOptions: () => {
return {
header: null
};
}
});
导航工作正常。我以一种习惯的方式处理导航
<NavigationStack ref={(navRef) => {
const idx = getDefaultRoute(BottomStackRoutes);
getNavigationHelper(navRef, BottomStackRoutes[idx].route, idx);
}} />
{
const idx=getDefaultRoute(BottomStackRoutes);
getNavigationHelper(navRef,BottomStackRoutes[idx].route,idx);
}} />
导航行为描述
我拥有的第一个路由是底部选项卡导航器,其他路由是根导航器中的屏幕组件。
我有四个底部标签。在每一步中,我都会记录导航器引用并检查路由状态
让我们假设我按顺序导航
主页->底部导航项2
=>state.nav.routes.length=1
底部导航项2->底部导航项3
=>state.nav.routes.length=1
底部导航项3->StackItem2
=>state.nav.routes.length=2
StackItem2->StackItem3
=>state.nav.routes.length=3
StackItem3->BottomNavItem4
=>state.nav.routes.length=1
在最后一种情况下,我希望长度增加,这样当我返回时,我就可以跟踪它。我认为不传递密钥一定造成了这种行为,但密钥没有任何效果,因为它不会在导航器中更改第一条路线的密钥