React · Middle · Frage 35 von 75
Was ist an diesem Case Reducer in createSlice falsch?
todoAdded(state, action) {
state.items.push(action.payload);
return { ...state, count: state.count + 1 };
}- 1Ein Case Reducer muss eine asynchrone Funktion sein
- 2Man darf nicht zugleich den Draft mutieren und einen Wert zurückgeben
- 3Mutierende Methoden wie
pushsind increateSliceverboten
Antwort zeigen
Richtige Antwort: Man darf nicht zugleich den Draft mutieren und einen Wert zurückgeben
Erklärung
Immer erlaubt entweder, den Draft state zu „mutieren“, oder einen komplett neuen Wert zurückzugeben - aber nicht beides, sonst wirft Immer einen Fehler. Hier reichen state.items.push(...) und state.count += 1. push ist erlaubt, weil Änderungen auf den Draft angewendet werden.