程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 Stack Navigation 和 Tab Navigation 构建 React Navigation v5 堆栈大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 Stack Navigation 和 Tab Navigation 构建 React Navigation v5 堆栈?

开发过程中遇到使用 Stack Navigation 和 Tab Navigation 构建 React Navigation v5 堆栈的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 Stack Navigation 和 Tab Navigation 构建 React Navigation v5 堆栈的解决方法建议,希望对你解决使用 Stack Navigation 和 Tab Navigation 构建 React Navigation v5 堆栈有所启发或帮助;

我目前正在尝试了解如何使用 v5 构建我的 React 导航堆栈,而不是使用 switchNavigator。

我的基本应用程序结构@R_618_9811@(将在下面发布一个流程的图像):

check Auth    
    -> signed in yes
      -> tab navigation (with stack navigators nested within)    
    -> signed in no
      -> nested stack navigator

但我就是不知道应该如何构建我的应用程序的根目录。我不知道如何将我的标签导航器和堆栈导航器结合在一起,使我的应用程序从头到尾都能正常运行。

(值得注意的是,'check Auth' 是一个实际的屏幕,而不是一个条件)

这是显示我的项目布局的插图:

使用 Stack Navigation 和 Tab Navigation 构建 React Navigation v5 堆栈

有人可以建议我如何构建它吗?任何关于如何最好地做到这一点的提示或一般结构/建议将不胜感激!

解决方法

所以我过去通常做的是渲染,或者两者都做。例如,根导航可能如下所示:

import { NavigationContainer as RootNavigationContainer } from "@react-navigation/native";


const Navigation = () => {
  const { someToken } = useContext(someContext);

  return (
    <RootNavigationContainer>
      {!someToken ? <AuthStack /> : <MainStack />}
    </RootNavigationContainer>
  );
};

应该在显示启动画面时确定用户的身份验证状态,使用单独的组件只会混淆 IMO 流程。如果用户通过了身份验证,您可以设置一些状态(在示例中在上下文中设置了令牌),然后将驱动显示哪个导航堆栈。

在我的示例中,AuthStack 将包含您的用户未经身份验证的所有屏幕 - 因此您的登录、注册等。@H_240_7@mainStack 将包含仅应向经过身份验证的用户显示的屏幕。

FacEID 之类的东西应该包含在您的登录流程中。

@H_607_44@
@H_607_44@

大佬总结

以上是大佬教程为你收集整理的使用 Stack Navigation 和 Tab Navigation 构建 React Navigation v5 堆栈全部内容,希望文章能够帮你解决使用 Stack Navigation 和 Tab Navigation 构建 React Navigation v5 堆栈所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。