首页 > 解决方案 > 如何忽略嵌套堆栈的 React Navigation 状态持久性?

问题描述

我有一个带有 React Navigation 的嵌套选项卡导航,我使用 AsyncStorage 来保持导航的状态。我想要做的是在用户打开嵌套导航堆栈(程序> ProgramMain/Recipes/Support)时忽略状态的保存。这是我的结构:

-Home
-Programs
---ProgramMain
---Recipes
---Support
-Profile

我试图检查NavigationContainer 的onStateChange的传递状态变量,但无法弄清楚我如何知道选择了哪个屏幕/堆栈。

非常感谢您的帮助。

标签: reactjsreact-nativereact-navigation

解决方案


我认为您走在正确的道路上,您可以在 NavigationContainer 的 onStateChange 传递的 state 变量的 route 属性中找到此信息:

每个状态对象都包含一个路由属性(路由对象列表),它列出了在导航器中呈现的屏幕。

路由对象也可能包含一个状态:一个可选对象,包含嵌套在此屏幕内的子导航器的导航状态。

https://reactnavigation.org/docs/navigation-state

此页面显示了如何从导航器获取活动路线的示例,以便您了解当前处于活动状态的屏幕。


推荐阅读