Я знаю, что я не должен изменять ввод и должен клонировать объект, чтобы изменить его. Я следовал соглашению, используемому в стартовом проекте 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 )]
теперь использовать срез вместо сращивания, чтобы не изменять ввод - это путь или есть более краткий способ?