2017-08-24 2 views
3

Ich versuche, meine Reduzierungen zu nisten diese Struktur zu geben:Nested combineReducers erzeugen einen nicht definierten Wert

state: { 
    data: { 
    dataSetOne: { 
     items: [], 
     filter: { 
     query: "", 
     includeInactive: false 
     } 
    } 
    } 
} 

Meine Dateistruktur ist:

--reducers 
    |__index.js 
    |__data 
    |__dataSetOne.js 

In index.js ich importieren und exportieren dataSetOne.jscombineReducers({ dataSetOne }). Das funktioniert gut. Aber in dataSetOne.js kann ich nicht scheinen, filter zu verschachteln. Was ich habe:

import { combineReducers } from "redux"; 

function items (state = [], action) { 
    ... 
} 

function query (state = "", action) { 
    ... 
} 

function includeInactive (state = false, action) { 
    ... 
} 

export default combineReducers({ 
    filter: combineReducers({ 
    includeInactive, 
    query 
    }), 
    items 
}); 

Teil davon funktioniert; Ich kann auf state.data.dataSetOne.items ohne Problem zugreifen. Jedoch ist filterundefined. Es existiert nicht einmal auf dem Objekt dataSetOne.

Ich muss falsch verstehen, wie combineReducers funktioniert, aber ich kann nicht herausfinden, warum das nicht funktionieren sollte.

Antwort

0

Ok, ich habe es endlich herausgefunden! Ich verwende redux-persist mit localforage, um meinen Shop über Aktualisierungen hinweg zu erhalten. Offensichtlich hat dies das Problem verursacht. Ich löschte die localforage Datenbank und alles funktioniert wie erwartet.

Ich muss immer noch nicht vollständig verstehen, wie combineReducers funktioniert, obwohl, weil ich einfach function s zu meinen Reduzierungen hinzufügen kann, ohne den Speicher zu löschen.

Wenn jemand dieses Verhalten erklären kann, werde ich es als die Antwort markieren.

Verwandte Themen