我的路线结构如下
- StackNavigator
-- SplaceScreen
-- LoginScreen
-- HomeScreen (Drawer Navigator)
--- Listing Screen (Stack Navigator)(Default Screen that loads)
--- Booking Screen (Stack Navigator)
--- Profile Screen (Stack Navigator)
预期行为
现在,当我导航到“预订”屏幕时,从“列表”屏幕中,我想用“预订”屏幕替换“列表”屏幕(例如,当我在Android上按回时,我不想看到“列表”屏幕)
当前行为
“预订”屏幕正在添加到“列表”屏幕上方(例如,它不会替换)
已尝试解决方案
const resetAction = StackActions.reset({
index: 0,
key:null,
actions: [NavigationActions.navigate({ routeName: 'BookingScreen' })],
});
props.navigation.dispatch(resetAction)
收到错误
没有为Key BookingScreen定义路线。必须是“ SplashScreen,LoginScreen,HomeScreen”之一
那么如何重置内部堆栈
答案 0 :(得分:0)
您可以使用replace
替换堆栈中的当前路由:
StackActions.replace('BookingScreen')
您将无法返回到替换的路线。