我现在正在考虑如何使用v5而不是switchNavigator来构建我的React导航栈。
我的基本应用程序结构是这样的(将在下面发布一个流程的图像):
check Auth
-> signed in yes
-> tab navigation (with stack navigators nested within)
-> signed in no
-> nested stack navigator但我就是不知道该如何构建我的应用程序的根。我不知道如何将tab导航器和stack导航器组合在一起,使我的应用程序从头到尾都能正常工作。
(值得注意的是,“检查身份验证”是一个实际的屏幕,而不是一个有条件的屏幕)
下面是我的插图,展示了我的项目布局:

有没有人能告诉我怎么才能建好呢?任何关于如何最好地做到这一点的技巧或一般结构/建议都将不胜感激!
发布于 2021-02-23 17:06:13
所以我在过去通常做的是渲染或者,而不是两者都做。因此,例如,根导航可能如下所示:
import { NavigationContainer as RootNavigationContainer } from "@react-navigation/native";
const Navigation = () => {
const { someToken } = useContext(SomeContext);
return (
<RootNavigationContainer>
{!someToken ? <AuthStack /> : <MainStack />}
</RootNavigationContainer>
);
};用户的身份验证状态的确定应该在闪屏显示时完成,使用单独的组件只会混淆流程。如果用户通过了身份验证,您可以设置一些状态(在本例中,在上下文上设置了一个令牌),这将决定显示哪个导航栈。
在我的示例中,AuthStack将包含您的用户未通过身份验证的所有屏幕-因此您的登录、注册等。MainStack将包含仅应显示给已通过身份验证的用户的屏幕。
像FaceID这样的东西应该包括在你的登录流中。
https://stackoverflow.com/questions/66329892
复制相似问题