Прежде всего, вот CodeSandbox: https://codesandbox.io/s/todolist-reducer-0y3mb?file=/src/context/TodosReducer.js
Проблема в том, что состояние не обновляется, хотя я передаю редуктору полезную нагрузку с новым массивом.
Я переставляю массив так:
const rearrange = (array, source, destination) => {
const newArray = [...array];
const newItem = array[source];
newArray.splice(source, 1);
newArray.splice(destination, 0, newItem);
return newArray;
};
Затем отправляем его:
const endDrag = newArray => {
dispatch({
type: "endDrag",
payload: newArray
});
};
Затем я возвращаю новое состояние в редуктор.
return {
...state,
todos: action.payload
};
Регистрация полезной нагрузки показывает, что все в порядке, но состояние по-прежнему не обновляется. Я использую react beautiful dnd, так что, возможно, это как-то связано с этим.