【问题标题】:React Navigation Reset on Nested Navigator在嵌套导航器上反应导航重置
【发布时间】:2020-11-05 15:41:29
【问题描述】:

我正在使用 React-Navigation v 5.0.1,我有一个嵌套在 Stack navigator 中的 Drawer navigator,如下所示:

MainStack.js

function MainStack() {
 return(
    <Stack.Navigator>
          <Stack.Screen name="Splash" component={Splash} />
          <Stack.Screen name="Login" component={Login} />
          <Stack.Screen name="HomeDrawerStack" component={HomeDrawerStack} />
    </Stack.Navigator>
 )
}

HomeDrawerStack.js

function HomeDrawerStack() {
 return (
    <Drawer.Navigator>
       <Drawer.Screen name="Home" component={Home} />
    </Drawer.Navigator>
 )
}

当我点击主页屏幕上的注销按钮时,如何导航到登录屏幕并重置/清除所有其他屏幕? (所以它会在其他屏幕上触发 componentWillUnmount)

【问题讨论】:

    标签: react-native react-navigation react-navigation-stack react-navigation-v5


    【解决方案1】:

    清除堆栈后,此代码将导航到登录屏幕。这样后退按钮或后退滑动将无法导航到HomeDrawerStack

    navigation.reset({
        index: 0,
        routes: [{ name: "Login" }],
    });
    

    【讨论】:

    • 我试过了,它没有重置到登录屏幕,它重置回主屏幕
    【解决方案2】:

    如果我分享我是如何处理它的,就像我在这里分享我的代码 sn-p 为 png 一样,所以我所做的就是在 Navigator 中附加了 redux,我用它来更改我的堆栈或替换我的堆栈调度事件以存储附加到 Navigator。

    【讨论】:

      猜你喜欢
      • 2019-07-16
      • 2020-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-31
      • 2018-10-18
      • 1970-01-01
      • 2022-01-25
      相关资源
      最近更新 更多