9
comments : {
    byId : {
        "comment1" : {
            id : "comment1",
            author : "user2",
            comment : ".....",
        },
        "comment2" : {
            id : "comment2",
            author : "user3",
            comment : ".....",
        },
        "comment3" : {
            id : "comment3",
            author : "user3",
            comment : ".....",
        },
        "comment4" : {
            id : "comment4",
            author : "user1",
            comment : ".....",
        },
        "comment5" : {
            id : "comment5",
            author : "user3",
            comment : ".....",
        },
    },
    allIds : ["comment1", "comment2", "comment3", "commment4", "comment5"]
}

在上面的示例中,是否有任何理由我需要将其api包含在内。我假设这样您可以更快地进行计数,您可能可以进行排序,但通常我不明白是否会影响性能。

4

1 回答 1

8

这不是 Redux 所要求的,这是规范化的事情。要回答您的问题,在某些情况下无法回复 JavaScript 对象以保留排序顺序。将 ids 放入数组中可以让您保留标准化之前存在的排序顺序。

引用来自 Redux 的共同维护者和 Redux 文档的“规范化状态形状部分”的作者

至于 ID 数组,虽然 JS 引擎现在有一个相当标准化的过程来遍历对象中的键,但您不应该依赖它来定义排序。存储 ID 数组允许您定义项目的顺序。

于 2017-09-08T22:48:50.730 回答