Reactjs 重复去规范化
我使用thunk从API异步获取数据,这是如下所示的嵌套数据:Reactjs 重复去规范化,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我使用thunk从API异步获取数据,这是如下所示的嵌套数据: { person: { id: <id> services: [{ id: <id>, leader: { id: <id>, name: <name> } },...] } } { 人:{ 身份证件: 服务:[{ id:, 领导:{ id:, 姓名:
{
person: {
id: <id>
services: [{
id: <id>,
leader: {
id: <id>,
name: <name>
}
},...]
}
}
{
人:{
身份证件:
服务:[{
id:,
领导:{
id:,
姓名:
}
},...]
}
}
现在,这被规范化为(让我们想象我们有一群人和东西):
{
结果:,
实体:{
人:{
: {
服务:[,…]
},...
},
服务:{
: {
领导:
}
},
领导:{
: {
姓名:
}
}
}
}
好的,现在我要把这个实体完整地放到我的组件中,问题是,做这件事的最佳方法是什么?
- 应将此实体构造回函数
MapStateTops
- 我应该在
方法中执行此操作吗render()
- 无论如何,最好的方法是什么。我已经看到了,但我仍然不确定这是让实体重新组合起来的解决方案。还有其他库可以对实体进行非规范化,但不确定是否应该使用它们
- 我应该为每个嵌套实体创建一个嵌套组件吗
谢谢 您应该检查Redux作者所做的检查以及Redux repo中的示例<代码>重新选择帮助您创建一个可记忆、可组合的选择器函数。阅读更多。我希望它能帮助您。是的,标准方法是在其
mapState
功能中对给定组件执行任何数据整形,使用基于重新选择的选择器来记忆该过程。您可能还想查看这个库,它提供了一个非常好的抽象层来管理Redux存储中的规范化数据。我在thunks和mapState
函数中使用它进行数据去规范化/选择,在reducer中更新不可变数据
网站上也有一篇关于这个话题的好文章
{
result: <person-id-1>,
entities: {
person: {
<person-id-1> : {
services: [<service-id-1>,...]
},...
},
service: {
<service-id-1>: {
leader: <leader-id-1>
}
},
leader: {
<leader-id-1>: {
name: <name>
}
}
}
}