reactjs - 如何忽略嵌套堆栈的 React Navigation 状态持久性?
问题描述
我有一个带有 React Navigation 的嵌套选项卡导航,我使用 AsyncStorage 来保持导航的状态。我想要做的是在用户打开嵌套导航堆栈(程序> ProgramMain/Recipes/Support)时忽略状态的保存。这是我的结构:
-Home
-Programs
---ProgramMain
---Recipes
---Support
-Profile
我试图检查NavigationContainer 的onStateChange的传递状态变量,但无法弄清楚我如何知道选择了哪个屏幕/堆栈。
非常感谢您的帮助。
解决方案
我认为您走在正确的道路上,您可以在 NavigationContainer 的 onStateChange 传递的 state 变量的 route 属性中找到此信息:
每个状态对象都包含一个路由属性(路由对象列表),它列出了在导航器中呈现的屏幕。
路由对象也可能包含一个状态:一个可选对象,包含嵌套在此屏幕内的子导航器的导航状态。
见https://reactnavigation.org/docs/navigation-state
此页面显示了如何从导航器获取活动路线的示例,以便您了解当前处于活动状态的屏幕。
推荐阅读
- java - 在调试 Java 应用程序 IntelliJ 时挂起线程
- python-3.x - 如何解决 SSLError 阻止软件包安装?
- swift - 谁应该在 MVVM 设计中拥有 subview 的 viewModel?
- unity3d - 即使在 Unity 中没有发生碰撞,也会调用 OnCollisionEnter(collision) 函数
- amp-html - google amp carousel 不使用 nextjs 自动播放
- flutter - 颤动我如何隐藏滚动上的容器
- c - 类型转换为 Float 的指针
- ios - 将当前时间向上舍入到下一个 30 分钟间隔
- java - 为什么在JPanel中添加组件,面板可以显示,但是当组件先添加到框架时,面板不能显示
- visual-studio - Visual Studio Code 2019 不允许我使用 c++ 17 功能