反应本机重置抽屉项-反应导航嵌套堆栈导航

时间:2020-02-11 07:45:41

标签: react-native react-navigation react-navigation-drawer

我的路线结构如下

- 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”之一

那么如何重置内部堆栈

1 个答案:

答案 0 :(得分:0)

您可以使用replace替换堆栈中的当前路由:

 StackActions.replace('BookingScreen')

您将无法返回到替换的路线。