我知道我不应该改变输入,应该克隆对象来改变它。我正在遵循 redux 入门项目中使用的约定:
ADD_ITEM: (state, action) => ({
...state,
items: [...state.items, action.payload.value],
lastUpdated: action.payload.date
})
添加项目 - 我使用 spread 将项目附加到数组中。
删除我用过:
DELETE_ITEM: (state, action) => ({
...state,
items: [...state.items.splice(0, action.payload), ...state.items.splice(1)],
lastUpdated: Date.now()
})
但这正在改变输入状态对象 - 即使我正在返回一个新对象,这是否被禁止?