【发布时间】:2017-03-15 19:00:38
【问题描述】:
如果在我的 React 应用程序中,使用 Redux 和 redux-thunk,我的商店有一组相对轻量级/非规范化的项目,用于所述项目的列表(在 API 中分页),但我也有一个编辑每个 /add 选项(与列表数组中的项目相同,但有许多附加字段,未进行非规范化等),我不知道以下哪个是存储在我的商店中的最佳方法:
- 在我的商店中维护一个项目数组,其中包含所有必要的数据(标准化,因此每个都包含一个相对较深的对象图)。编辑只需要在商店中找到它,进行更改,然后切回到 state.items 数组中。
- 为项目列表维护一个极简项目数组,同时还有一个根
state.currentItem对象。 - 为项目列表维护一组极简项目,同时将数组重置为仅包含一个项目(包含编辑所需的所有数据)。这避免了需要创建另一个 reducer,这可能是一件好事,也可能不是一件好事。
由于实际列表项对象的数据密集性,我必须使用选项 2/3,但现在我在两个地方有可能不会同步的冗余数据(尽管实际上,在我的应用程序中,由于分页/排序,我必须在返回列表时重新轮询来自 API 的最新数据)或可以包含两种不同对象格式的项目的项目数组。
两者都觉得很脏,这让我相信我错过了一些明显的东西,redux 已经具备处理能力。建议?其他选项?
【问题讨论】:
-
我相信 Dan Abramov 的这篇文章可以帮助到你:stackoverflow.com/a/33946576/1126800
-
是的,类似于下面 cmets 中指出的讨论。谢谢。
标签: reactjs react-redux redux-thunk