我正在尝试找出一个在Redux中创建多对多关系的良好结构。在这个例子中,我们有图像(可以有多个标签)和标签(可以有多个图像)。
这是在Redux中构建它的好方法吗?
images: {
1: {
title: "A bunch of hills"
},
2: {
title: "Hiking in a forest"
}
},
tags: {
1: {
title: "landscape"
},
2: {
title: "outdoors"
}
},
imagesTags: {
[
image: 1,
tag: 1
],
[
image: 1,
tag: 2
],
[
image: 2,
tag: 2
]
}
这确实意味着我必须创建一个单独的减速器,它与我的模块化结构相混淆但我想这总是会产生相关减速器的结果。
答案 0 :(得分:3)
是的,这是"标准化"的一个例子。州。 Redux文档涵盖了Structuring Reducers部分中的规范化。请参阅Structuring Reducers - Prerequisite Concepts,Structuring Reducers - Normalizing State Shape和Structuring Reducers - Updating Normalized Data。此外,Redux FAQ还讨论了"How do I organize nested or duplicate data in my state?"中的规范化。
除此之外,我非常喜欢使用名为Redux-ORM的库来管理我的Redux商店中的关系数据。我写过一些帖子,讨论我如何使用它:Practical Redux Part 1: Redux-ORM Basics和Practical Redux Part 2: Redux-ORM Concepts and Techniques。我"Practical Redux" tutorial series的其余部分也会显示此库。