入力を変更することは想定されていないため、オブジェクトを複製して変更する必要があります。私は以下を使用するreduxスタータープロジェクトで使用される規則に従っていました:
ADD_ITEM: (state, action) => ({
...state,
items: [...state.items, action.payload.value],
lastUpdated: action.payload.date
})
アイテムを追加する場合-配列にアイテムを追加するためにスプレッドを使用します。
私が使用した削除:
DELETE_ITEM: (state, action) => ({
...state,
items: [...state.items.splice(0, action.payload), ...state.items.splice(1)],
lastUpdated: Date.now()
})
しかし、これは入力状態オブジェクトを変更しています-新しいオブジェクトを返しているにもかかわらず、これは禁止されていますか?
items: [...state.items.slice(0, action.payload.value), ...state.items.slice(action.payload.value + 1 )]
入力を変更しないようにスプライスの代わりに今すぐスライスを使用-これは行く方法ですか、それとももっと簡潔な方法がありますか?