Je sais que je ne suis pas censé muter l'entrée et que je devrais cloner l'objet pour le muter. Je suivais la convention utilisée sur un projet de démarrage redux qui utilisait:
ADD_ITEM: (state, action) => ({
...state,
items: [...state.items, action.payload.value],
lastUpdated: action.payload.date
})
pour ajouter un élément - je reçois l'utilisation de spread pour ajouter l'élément dans le tableau.
pour supprimer j'ai utilisé:
DELETE_ITEM: (state, action) => ({
...state,
items: [...state.items.splice(0, action.payload), ...state.items.splice(1)],
lastUpdated: Date.now()
})
mais cela mute l'objet d'état d'entrée - est-ce interdit même si je retourne un nouvel objet?
items: [...state.items.slice(0, action.payload.value), ...state.items.slice(action.payload.value + 1 )]
utiliser slice maintenant au lieu de splice afin de ne pas muter l'entrée - est-ce la voie à suivre ou y a-t-il une manière plus concise?