【发布时间】:2017-05-05 07:29:53
【问题描述】:
我正在使用 react native 和 redux 制作一个非常简单的应用程序。我想知道,我应该如何管理状态,尤其是导航。我知道这是一个高度基于意见的问题,但我相信这对我理解 redux 至关重要。导航结构是这样的:
app
/ | \
role1View login role2View
/ \
formView logView
/ \
formPage1 formPage2
导航中需要考虑的事项:
- 有 3 个顶级视图:login、role1View 和 role2View。根据登录角色选择正确的视图。应该也可以从子视图导航到这些视图,因此我计划将此路由信息保留在 redux 中。
- role1View 有 2 个选项卡:formView(默认)和 logView。应该无法直接导航到这些视图,而只能使用选项卡通过 UI。选项卡不会以编程方式更改。
- formPage1(默认)和 formPage2 是 formView 选项卡上的子视图。 FormPage2 需要将数据保存在 formPage1 上,但是当 tab 改变时,表单数据应该会被遗忘。
- FormPage1 发出 webRequest,并根据请求重定向到 formPage2。因此,表单必须显示加载程序并跟踪请求状态。如果在请求过程中更改了选项卡,则应放弃该请求。如果请求状态是 redux,这可能会更难做到。
所以问题是,我应该存储在 redux 还是本地状态
- 路线。我想我会将主要路线存储在 redux 中,而其他路线则存储在本地状态中。
- 表格数据。我正在考虑将其存储到 formView 的本地状态。
- 表单 UI 状态。可能是 formPage1 中的本地状态?
更新,额外的问题:
需要添加从formPage2 到formPage1 的向上导航(左上角的箭头)。 Android工具栏定义在更高级别(app)上,向上按钮可见性存储到redux。我应该如何/在哪里处理向上按钮点击?
【问题讨论】:
标签: reactjs react-native navigation redux