我现在使用Redux已经有一段时间了,我很喜欢它:)
我在处理嵌套数组时如何组合reducers有点困惑。我有一个用户对象,它有一个评论列表。每篇评论都可以包含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中。每次状态发生变化时,我都会通过评论/评论列表进行映射。随着数据量的增长,reducers变得更加嵌套,管理起来也很复杂。
有没有办法将其组合成3个减速器:UserReduce
r,ReviewReducer
和CommentReducer
?
感谢您的帮助。
答案 0 :(得分:3)
绝对。使用扁平结构更容易。
查看https://github.com/gaearon/normalizr有关拆分数据的建议。并在https://github.com/rackt/reselect上准备要在组件中使用的状态数据。
想法是按实体类型将实体数据拆分为多个Reducer。然后构建一个选择器 - 这个函数可以获取全局存储并返回一些方便的数据结构。