0

我正在使用 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)

4

2 回答 2

0

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

navigation.reset({
    index: 0,
    routes: [{ name: "Login" }],
});
于 2020-07-16T03:12:37.703 回答
-1

如果我分享我是如何处理它的,就像我在这里将我的代码片段分享为 png,所以我所做的就是在 Navigator 中附加了 redux,我使用通过调度事件来更改我的堆栈或替换我的堆栈以存储附加到导航器。

在此处输入图像描述

于 2020-07-16T03:14:39.850 回答