使用React Navigation v5身份验证流程处理深层链接

时间:2020-02-26 09:51:18

标签: react-native react-navigation expo

我想使用带有Expo的React Navigation v5从深层链接访问经过身份验证的屏幕。 因此,我遵循了authentication flow的反应导航,最后以这样的启动导航器结束了:

const StartupNavigator = (props: Partial<StackNavigatorProps>): ReactElement => {
    const {startUp} = useStartUp();

    const renderStacks = () => {
        if (startUp.isReady) {
            return <Stack.Screen name={Routes.HOME} component={BottomTabNavigator}/>;
        }
        if (startUp.isLoading) {
            return <Stack.Screen name={Routes.CHECK} component={CheckScreen}/>;
        }
        if (startUp.isBuilding) {
            return <Stack.Screen name={Routes.BUILD} component={BuildScreen}/>;
        }
        if (startUp.isAuthentifying) {
            return <Stack.Screen name={Routes.AUTH} component={AuthNavigator}/>;
        }
    };

    return (
        <Stack.Navigator {...props} headerMode={"none"}>
            {renderStacks()}
        </Stack.Navigator>
    );
};

所以我有4种初始状态:

  1. isReady :用户已通过身份验证,可以访问受保护的用户 屏幕。
  2. isLoading :打开应用程序时的第一种状态,请检查应用程序 版本.....然后设置isAuthentifying状态
  3. isAuthentifying :用于注册和登录的身份验证导航器。
  4. isBuilding :身份验证后,获取用户信息,然后将状态设置为isReady

请注意,打开应用程序时,状态默认设置为isLoading

然后,我在this link之后制作了一个NavigationContainer,用于处理深层链接

如何重定向到通过身份验证的经过身份验证的屏幕(请注意,我没有自动登录过程)

0 个答案:

没有答案