Reactjs 重复去规范化

Reactjs 重复去规范化,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我使用thunk从API异步获取数据,这是如下所示的嵌套数据: { person: { id: <id> services: [{ id: <id>, leader: { id: <id>, name: <name> } },...] } } { 人:{ 身份证件: 服务:[{ id:, 领导:{ id:, 姓名:

我使用thunk从API异步获取数据,这是如下所示的嵌套数据:

{
  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>
      }
    }
  }
}