2017-03-29 7 views
0

Ich arbeite mit Seamless-unveränderlich und Redux, und ich bekomme einen seltsamen Fehler beim Aktualisieren des Zustands. Hier ist mein Code, ohne die Bits wie die Action Return oder CombineReducers. Nur der Junk, der den Fehler verursacht/verursacht.seamless-immutable aktualisiert den Zustand nicht konsistent

Anfangszustand

{ 
    things: { 
    fetching: false, 
    rows: [] 
    } 
} 

Aktionssteuerung

export default { 
    [DEALERS_REQUEST]: (state, action) => { 
    return Immutable({ ...state, fetching: true }); 
    }, 
    [DEALERS_RECEIVE]: (state, action) => { 
    return Immutable({ ...state, rows: action.payload, fetching: false }); 
}, 

Middleware mit thunk

export const thingsFetch = (data) => { 
    return (dispatch, getState) => { 
    dispatch(thingsRequest()); 
    dispatch(thingsReceive(data)); 
    } 
} 

Jetzt Was komisch ist, wenn ich diese beiden Aktionen zusammen mache, ist alles in Ordnung.

Wenn ich nur thingsRequest() versenden, bekomme ich einen Fehler "kann nicht auf unveränderliches Objekt schieben".

Ich habe versucht, Methoden wie set, update, ersetzen, fusionieren, aber sie kommen in der Regel mit "this.merge ist keine Funktion" zurück.

Mache ich etwas falsches Verfahren oder sollte ich den Modulentwickler kontaktieren, um ein Problem zu melden?

Antwort

0

Das Problem dabei war, dass die Komponente im Fall eines leeren Arrays versuchte, mit einer eigenen Fehlermeldung auf das Unveränderliche Objekt zurückzuschreiben.

Um das zu umgehen, gebe ich die Stütze als veränderlich. Es gibt auch einige redux-unveränderliche Module, die die traditionelle Verbindungsfunktion zu der ganzen App ersetzen, um veränderbare Stützen an Komponenten zu übergeben, während die Unveränderlichkeit in dem Zustand beibehalten wird.

Verwandte Themen