【发布时间】:2018-12-11 19:21:06
【问题描述】:
我有一个 API,它返回从 MongoDB 获取的对象数组。
API:
[
{ _id: b23a, title: "Some Title" },
{ _id: c10x, title: "Some Other Title" },
{ _id: a31w, title: "And even more" },
]
数组是有序的。我想在我的 Redux 状态中保留这个顺序,但是,我也希望能够通过 id 访问所有对象。所以我想用以下方式组织我的状态:
{
order: ["b23a","c10x","a31w"], //keeps the order
byId: {
"b23a" : { _id: b23a, title: "Some Title" },
"c10x" : { _id: c10x, title: "Some Other Title" },
"a31w" : { _id: a31w, title: "And even more" },
}
}
解决此问题的最佳方法是什么?有一个单独的 API 路由以我需要 Redux 的确切形式发送回数据会更好吗?所以我会在发回之前修改服务器端的数据,然后把它放到我的 Redux 状态;或者:在客户端解析数组是否更常见/更有效?你通常会推荐什么?
【问题讨论】:
-
您已经将 byID 中的订单作为键。为什么要将订单存储在另一个键中。
-
对不起,这只是在示例中。 ids会由mongodb生成,所以不会有顺序。我现在已经更改了示例。
-
这取决于很多参数,你的数据如何扩展,解析这个数组的最终目标是什么,服务器端是否已经有限制/分页排序/过滤,你刷新这些数据的次数。 .. 您所做的选择将基于性能优化。 (顺便说一句,你可能不需要像那样解析你的数组)
-
btw you probably don't need to parse your array like that是什么意思?
标签: javascript reactjs rest redux flux