Ich weiß, dass ich die Eingabe nicht mutieren soll und das Objekt klonen soll, um es zu mutieren. Ich folgte der Konvention, die für ein Redux-Starterprojekt verwendet wurde, das Folgendes verwendete:
ADD_ITEM: (state, action) => ({
...state,
items: [...state.items, action.payload.value],
lastUpdated: action.payload.date
})
zum Hinzufügen eines Elements - Ich verwende die Spread-Funktion, um das Element im Array anzuhängen.
Zum Löschen habe ich verwendet:
DELETE_ITEM: (state, action) => ({
...state,
items: [...state.items.splice(0, action.payload), ...state.items.splice(1)],
lastUpdated: Date.now()
})
Dies mutiert jedoch das Eingabestatusobjekt. Ist dies verboten, obwohl ich ein neues Objekt zurückgebe?
items: [...state.items.slice(0, action.payload.value), ...state.items.slice(action.payload.value + 1 )]
Verwenden Sie jetzt Slice anstelle von Splice, um die Eingabe nicht zu mutieren. Ist dies der richtige Weg oder gibt es einen präziseren Weg?