2016-11-21 4 views
1

Ich versuche, eine neue Eigenschaft eines Zustandsobjekts zuzuweisen, aber ich kann nicht scheinen, ohne ein ganz neues Objekt zu setzen, I Ich möchte nur eine Eigenschaft hinzufügen und nicht ein ganzes neues Objekt mit genau dieser Eigenschaft erstellen.Angular 2 mit ngrx/store, Aktualisieren der Eigenschaft des Zustandsobjekts ohne das gesamte Objekt zu überschreiben

Hier ist mein Minderer:

const initialState = { 
    all: [], 
    single: {} 
} 

export const ModelsReducer: ActionReducer<any> = (state: IModelsStorage = initialState, action: Action) => { 

    switch(action.type) { 

    case GET_MODELS_SUCCESS: return Object.assign({}, state, { 
     all: [...action.payload.data] 
    }); 

    case GET_MODEL_SUCCESS: return Object.assign({}, state, { 
     single: action.payload.data 
    }); 

    // How do I only update the single object without overwriting the whole thing? 
    case GET_VARIANTS_SUCCESS: return Object.assign({}, state, { 
     single: { 
     variants: action.payload.data 
     } 
    }); 

    default: return state; 
    } 
} 

Wie kann ich das tun?

Antwort

1

mit einem anderen Object.assign ...

case GET_VARIANTS_SUCCESS: return Object.assign({}, state, { 
    single: Object.assign(state.single, { 
    variants: action.payload.data 
    }) 
}); 
+0

es Figured nach einer Weile heraus, drehte sich Daten aus Backend-out war nicht korrekt, so hat dies nicht funktionieren, bis das behoben. Wie auch immer, danke für die Antwort :) – Chrillewoodz

Verwandte Themen