我想使用带有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种初始状态:
isAuthentifying
状态isReady
请注意,打开应用程序时,状态默认设置为isLoading
然后,我在this link之后制作了一个NavigationContainer,用于处理深层链接
如何重定向到通过身份验证的经过身份验证的屏幕(请注意,我没有自动登录过程)