我使用react native和redux制作一个非常简单的应用程序。我想知道,我应该如何管理国家,尤其是导航。我知道这是一个基于意见的问题,但我相信这对我理解redux很重要。导航结构如下:
app
/ | \
role1View login role2View
/ \
formView logView
/ \
formPage1 formPage2
导航中需要考虑的事项:
所以问题是,我应该存储在redux或本地状态
更新,额外问题:
需要从formPage2到formPage1添加导航(左上角的箭头)。 Android工具栏在更高级别(app)上定义,向上按钮可见性存储在redux中。我应该如何/在哪里处理按钮点击?
答案 0 :(得分:1)
我认为Redux先生本人的回应仍然适用于此: https://github.com/reactjs/redux/issues/1287#issuecomment-175351978
将React用于对全局应用程序无关紧要的短暂状态,并且不会以复杂的方式进行变异。例如,某个UI元素中的切换,表单输入状态。将Redux用于全局重要或以复杂方式变异的状态。例如,缓存用户或帖子草稿。
一般来说,如果状态仅与一个父组件相关,并且从那里开始只有一个或两个级别,则最好保持本地状态。 如果该父组件的兄弟姐妹或其他更高级别或应用程序中的其他组件可以触及该状态,则它可能是Redux的良好候选者。
将此与您的应用相关联,我认为您已经有了正确的想法。特别是当观点在导航时失去状态时,在全球商店中保持这种状态真的没有意义。
路由往往是全球关注的问题,这就是为什么react-router-redux非常受欢迎,以便在redux存储中保持路由状态。 但是,由于你的标签不应该是全局可访问的(除非将来可能会改变吗?),所以在本地保持该路由状态仍然更清晰,我要说。