Redux存储一般数据,非持久性

时间:2016-04-21 13:07:52

标签: reactjs redux

我有一个非常笼统的问题,但我无法找到一个好的解决方案,而不是谷歌,stackoverflow ......

我的应用程序中有几个reducer反映了我的状态树。 A'用户'减速机和调查' reducer(制作调查应用程序)。但现在我想为用户创建一个个人资料页面。所有可用字段的答案当然不会进入“用户”状态。商店,但列表选项呢?例如,选择你的性别(m / f)或选择你最喜欢的过去时间...不知何故,我觉得这些选项不应该驻留在用户商店,或者我错了?我觉得对于一个给定的用户我希望有一个状态说明性别:m',但在应用程序中我想展示'男性'而不是' m。或者我是一无所有,我应该保留所有这些标签/价值事物的一个大键/值列表以这种方式访问​​它吗?

1 个答案:

答案 0 :(得分:1)

如果它们是性别等简单属性,我同意@kujira您可以随意制作基础值(例如男性m),然后在JSX中以不同的方式显示它们真的是你想做的事。

至于用户属性是否应该进入Users减速器,答案可能是肯定的。仅仅因为模型可能具有许多属性并不意味着您需要创建另一个减速器。通常,您希望尽可能地将您的redux状态标准化。规范化表示一对一关联在同一个表中(或者在这种情况下,是reducer状态)。

您可能拥有不同缩减器的唯一情况是,您基本上拥有单独的模型,并且这两个模型在一对多或多对多关系中相互关联。如果它是一对一的关系,或者您只是想将某个属性约束到某些值,那么规范化规则就会说它保持在同一个模型上。

如果您担心如何强制执行约束,那么可以在您的应用中添加一个检查,如果mf以外的值为传递给gender,但那是练习过度防守的编程。如果你真的觉得你需要走这条路,可以选择考虑Facebook flow注释。