【问题标题】:React native reset Drawer Items - react navigation nested stack navigation反应原生重置抽屉项目 - 反应导航嵌套堆栈导航
【发布时间】:2020-02-11 07:45:41
【问题描述】:

我的路线结构如下

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

那么如何重置内部堆栈

【问题讨论】:

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


    【解决方案1】:

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

     StackActions.replace('BookingScreen')
    

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

    【讨论】:

      猜你喜欢
      • 2022-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 2020-09-03
      • 1970-01-01
      相关资源
      最近更新 更多