首先,这是一个 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,所以也许这与它有关。