如何通过反应导航重置到不同堆栈中的屏幕?

时间:2020-10-15 13:23:11

标签: react-native react-navigation

我在一个Stack.Navigator中有一个“设置”屏幕,允许用户注销。我希望通过该注销操作将用户重置为位于其他Stack.Navigator内的登录屏幕。

React-Navigation 5.X的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以通过在重置操作中首先指定堆栈的路由,然后将其指定为堆栈状态内特定屏幕的路由作为该路由的子级来完成此操作。

在下面的示例中,此重置操作将堆栈索引设置为0,并将用户导航到一个单独的“主页”堆栈,屏幕上的“着陆”是一个子窗口。

import { CommonActions } from '@react-navigation/native';

navigation.dispatch(
    CommonActions.reset({
        index: 0,
        routes: [
            {
                name: 'Home',
                state: {
                    routes: [{ name: 'Landing' }],
                },
            },
        ],
    }),
);