So che non dovrei cambiare l'input e dovrei clonare l'oggetto per modificarlo. Stavo seguendo la convenzione utilizzata su un progetto di avviamento redux che utilizzava:
ADD_ITEM: (state, action) => ({
...state,
items: [...state.items, action.payload.value],
lastUpdated: action.payload.date
})
per l'aggiunta di un elemento - ottengo l'uso di spread per aggiungere l'elemento nell'array.
per la cancellazione ho usato:
DELETE_ITEM: (state, action) => ({
...state,
items: [...state.items.splice(0, action.payload), ...state.items.splice(1)],
lastUpdated: Date.now()
})
ma questo sta mutando l'oggetto dello stato di input - è vietato anche se sto restituendo un nuovo oggetto?
items: [...state.items.slice(0, action.payload.value), ...state.items.slice(action.payload.value + 1 )]
usare ora slice invece di splice in modo da non modificare l'input - è questa la strada da percorrere o c'è un modo più conciso?