2016-12-03 2 views
1

Ich kann nicht scheinen, den Standardzustand zurückzustellen; wie mache ich das? Ich habe das versucht, aber alles, was es tut, ist hinzuzufügen state zu State und nennt es undefined.Wie setze ich den Zustand in den Ausgangszustand zurück?

const initialState = { 
    name: null, 
    coins: 0, 
    image: null, 
}; 

export default function reducer(state = initialState, action = {}) { 
    switch (action.type) { 
    case types.ADD_GROUP_COINS: 
     return { 
     ...state, 
     coins: state.coins + action.coins 
     }; 
    case types.DELETE_GROUP: 
     return { 
     state: undefined 
     }; 
    default: 
     return state; 
    } 
} 
+0

Tut 'Fall types.DELETE_GROUP: return initialState;' nicht funktionieren, oder ist das nicht das, was Sie beabsichtigten? – Aurora0001

+0

Das würde mir '' State: {state: {initialState}} 'stattdessen geben. Weil es es 'state' in' state' zuordnet –

+0

Ich glaube nicht, dass es würde - 'return {state: initialState}' würde das tun - 'return initialState' sollte wie erwartet funktionieren. – Aurora0001

Antwort

2

Um den Zustand in den initialState zurückgesetzt, einfach return initialState, wie folgt aus:

case types.DELETE_GROUP: 
    return initialState; 

dass Denken Sie daran, in den Druckminderer, das Objekt, das Sie zurückkommen ist der neue Zustand. Sie müssen nicht in einem anderen Objekt wickeln, wie folgt aus:

return { 
    state: ... 
} 

Dass Sie rief eine Eigenschaft state in Ihrem Land geben, die überhaupt nicht das, was Sie brauchen.

From the documentation:

Der Abschwächer ist eine reine Funktion, die den vorherigen Zustand und eine Aktion stattfindet, und gibt den nächsten Zustand.

Es ist leicht, sich darüber zu verwirren, seien Sie also vorsichtig! Werfen Sie einen Blick auf Ihre default Fall, wenn Sie noch nicht ganz sicher sind: Sie geben die alte state Variable als den neuen Zustand, nicht{ state: state }, die Sie im Wesentlichen mit der aktuellen DELETE_GROUP Handler tun.

+1

Vielen Dank für die ausführliche Antwort! Klappt wunderbar –

Verwandte Themen