我正在使用Redux一段时间了,我很喜欢:)

在处理嵌套数组时,我对如何组成化简器有些困惑。我有一个用户对象,其中包含评论列表。每个评论可以有一个review_comments列表。

{
  user: {
  id: 1,
  reviews: [{
     id: 1,
     comments: [{
        id: 1,
        message: "Test"
     }, {
        id: 2,
        message: "123"
     }, {
        id: 3,
        message: "456"
     }]}, {
        id: 2,
        comments: [{
            id: 5,
            message: "qwerty"
        }, {
            id: 6,
            message: "1542354"
        }, {
            id: 7,
            message: "45we 6"
        }]
    }]
}}


现在,所有这些都在同一个UserReducer中。每当状态发生变化时,我都会通过评论/评论列表进行映射。随着数据规模的增长,reducer变得更加嵌套,并且管理起来也更加复杂。

有没有办法将其组合为3个reducer:UserReduce r,ReviewReducerCommentReducer

谢谢您的帮助。

最佳答案

绝对。使用平面结构要容易得多。

查看https://github.com/gaearon/normalizr以获得有关拆分数据的想法。然后在https://github.com/rackt/reselect上准备要在组件中使用的状态数据。

想法是按实体类型在几个化简器上拆分实体数据。然后构建一个选择器-函数,该函数接受全局存储并返回一些对您方便的数据结构。

08-16 11:32