我有一个带有(理论)导航结构的应用程序
/TabNavigator
/StackNavigator1
/ Home
/ View
/ Edit
/StackNavigator2
/ Search
/ View
/ Edit
/StackNavigator3
/ Profile
/ View
/ Edit其中Home、Search、Profile是屏幕组件,View和Edit是在每个堆栈中重用的屏幕组件。
因此,如果我的屏幕在每个堆栈中都可用,那么它们可以同时挂载多次,即使组件本身只有一个存储区。
例如,如果我导航到第一个堆栈中的View并加载一个ID为1的项,然后导航到第二个堆栈中的View并加载一个ID为2的项,当我导航回第一个堆栈时,我的状态将已更新,并且我将丢失正在查看的内容。
当React导航将多次挂载屏幕时,您应该如何管理屏幕的状态?
发布于 2017-09-07 05:10:32
在这种情况下,您真的需要共享状态吗?当两个或多个组件共享相同的状态属性时,应使用Redux。如果你需要的值只与一个组件相关,也许Redux是不需要的,你可以在组件自己的状态下处理它,或者通过属性传递值给它。如果你真的因为任何原因需要使用Redux,那么当你按下“后退”按钮时,一种选择是使用Undo History来返回到以前的值。http://redux.js.org/docs/recipes/ImplementingUndoHistory.html
希望能有所帮助。
https://stackoverflow.com/questions/46084208
复制相似问题