2017-12-09 9 views
0

Ich habe ein verschachtelten Daten, die wie folgt aussehen:Normalizr normalisieren verschachtelte Daten

{ 
    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" 
      }] 
      }] 
     }, 
     ] 
    }] 
    ] 
} 

Wie Sie sehen dies eine verschachtelte Struktur mit beliebiger Verschachtelung ist. Das heißt, in dem Komponenten-Array kann auch ein Array eines Bereichs sein, in dem wiederum ein anderes Komponenten-Array sein kann.

Ich versuche, diese Struktur in eine flache Form mit normalizr aber bisher ohne Ergebnis zu bringen. Ich wäre dankbar für die Hilfe bei der Lösung dieses Problems.

+1

Es wäre wertvoll zu zeigen, was Sie bisher haben, auch wenn es noch nicht ganz richtig funktioniert. Dies wird den Menschen helfen, ihre Antworten auf Sie zuzuschneiden. Auch die Form dessen, wie die normalisierten Daten aussehen sollen, wäre hilfreich. –

Antwort

0

würde ich etwas so einfach wie das versuchen:

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] 
}) 

Ich habe Angst vor zirkulären Referenzen, aber es ist ein Versuch wert. Wenn es nicht funktioniert, kannst du liefern, was du bis jetzt getan hast?

Verwandte Themen