首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React Navigation + Redux:当一个场景挂载在多个导航器中时,如何处理状态?

React Navigation + Redux:当一个场景挂载在多个导航器中时,如何处理状态?
EN

Stack Overflow用户
提问于 2017-09-07 04:56:27
回答 1查看 209关注 0票数 1

我有一个带有(理论)导航结构的应用程序

代码语言:javascript
复制
/TabNavigator
  /StackNavigator1
    / Home
    / View
    / Edit
  /StackNavigator2
    / Search
    / View
    / Edit
  /StackNavigator3
    / Profile
    / View
    / Edit

其中HomeSearchProfile是屏幕组件,ViewEdit是在每个堆栈中重用的屏幕组件。

因此,如果我的屏幕在每个堆栈中都可用,那么它们可以同时挂载多次,即使组件本身只有一个存储区。

例如,如果我导航到第一个堆栈中的View并加载一个ID为1的项,然后导航到第二个堆栈中的View并加载一个ID为2的项,当我导航回第一个堆栈时,我的状态将已更新,并且我将丢失正在查看的内容。

当React导航将多次挂载屏幕时,您应该如何管理屏幕的状态?

EN

回答 1

Stack Overflow用户

发布于 2017-09-07 05:10:32

在这种情况下,您真的需要共享状态吗?当两个或多个组件共享相同的状态属性时,应使用Redux。如果你需要的值只与一个组件相关,也许Redux是不需要的,你可以在组件自己的状态下处理它,或者通过属性传递值给它。如果你真的因为任何原因需要使用Redux,那么当你按下“后退”按钮时,一种选择是使用Undo History来返回到以前的值。http://redux.js.org/docs/recipes/ImplementingUndoHistory.html

希望能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46084208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档