Normalizr规范化嵌套数据

时间:2017-12-09 04:08:09

标签: javascript reactjs vue.js normalizr

我有一个嵌套数据,如下所示:

{
  components: [
    guid: "cms-container/c154c79596b3af6326966b0c994e2a934",
    regions: [{
      guid :"r1c154c79596b3af6326966b0c994e2a934",
      components: [{ 
          guid: "cms-markupfile/owg-header.html" },
        { guid: "cms-navmenu/n1503636374400" },
        { guid: "cms-container/c50c451ba72e4b4edab979cf477129215",
          regions: [{
            guid: "r1c50c451ba72e4b4edab979cf477129215",
            components: [{
              guid:"cms-serie/serieDetailRenderer"
            }]
          }]
        },
      ]
    }]
  ]
}

正如您所看到的,这是一个具有任意嵌套的嵌套结构。 也就是说,在组件数组中,也可以有一个区域数组,其中可以有另一个组件数组。

我试图将这个结构变为带有normalizr的扁平形式但到目前为止没有结果。我很感激帮助解决这个问题。

1 个答案:

答案 0 :(得分:0)

我会尝试一些简单的事情:

import { schema } from 'normalizr'

const schemas = {
    component: new schema.Entity('components'),
    region: new schema.Entity('regions')
}

schemas.component.define({
    regions: [schemas.region]
})
schemas.region.define({
    components: [schemas.component]
})

我害怕循环引用,但值得尝试。 如果它不起作用你能提供你迄今为止做过的事情吗?