2017-04-09 4 views
1

ich immer Fehler wie diese:Redux Kann nicht Schema Normalizr lesen

Uncaught (in promise) TypeError: Cannot read property 'periodListSchema' of undefined

hier ist mein Code:

mein Schema

import { schema, arrayOf } from 'normalizr'; 

export const periodSchema = new schema.Entity('activePeriod'); 
export const periodListSchema = new schema.Array(periodSchema); 

Meine Normalisieren Aktion

then(response => { 
      console.log('normalized response', normalize(response.schema.periodListSchema)); 

und das ist meine Antwort

{"activePeriod":[{"periodID":2,"periodName":"Periode 27","startDate":"2016-11-11","endDate":"2016-12-11","remark":"Periode Alpha 27","isActive":"1"}],"status":"OK"} 

Meine Normalzr Bibliothek ist v3.2.2 kann mir jemand helfen herauszufinden, was falsch ist ?, ich versuche, dies zu verstehen.

Antwort

3

1) Uncaught (in promise) TypeError: Cannot read property 'periodListSchema' of undefined Dieser Fehler wurde wegen response geworfen schema Eigenschaft nicht hat, deshalb kann man nicht periodListSchema Eigenschaft von undefined

2) erhalten Antwort auf normalisieren, sollten Sie Array von Perioden zu normalize func passieren, und geben Sie schema an. Wenn Sie einen nicht standardmäßigen Namen der ID-Eigenschaft haben, sollten Sie den Namen in den Optionen schema.Entity constructor über idAttribute angeben.

DEMO webpackbin

Beispiel

import { schema, normalize } from 'normalizr'; 

export const periodSchema = new schema.Entity(
    'activePeriods', 
    {}, 
    { idAttribute:'periodID' } 
); 
export const periodListSchema = [periodSchema]; 

const response = {"activePeriod":[{"periodID":2,"periodName":"Periode 27","startDate":"2016-11-11","endDate":"2016-12-11","remark":"Periode Alpha 27","isActive":"1"}],"status":"OK"}; 

console.log(
    normalize(response.activePeriod, periodListSchema) 
); 

Ergebnis

{ 
    "entities": { 
    "activePeriods": { 
     "2": { 
     "periodID": 2, 
     "periodName": "Periode 27", 
     "startDate": "2016-11-11", 
     "endDate": "2016-12-11", 
     "remark": "Periode Alpha 27", 
     "isActive": "1" 
     } 
    } 
    }, 
    "result": [ 
    2 
    ] 
} 
+0

ich diese Fehlermeldung bekommen: Fehler: Unerwartete Eingabe zu normalisieren gegeben. Erwarteter Typ "Objekt", gefunden "undefiniert". bei normalize – ukiyakimura

+0

ich bereits das beheben. vergiss mehr zu spezifizieren. meine Antwort.data.activePeriod. thx sowieso – ukiyakimura

Verwandte Themen