在 Redux todo 示例中创建 "copy" 函数
In the Redux todo example create "copy" function
在 Redux Todo 示例中。
https://github.com/reactjs/redux/tree/master/examples/todomvc
您将如何创建 "copy" 功能。基本上,使用现有的待办事项数据(待办事项的名称)添加新的待办事项。
我想知道这是否是通过动作完成的?还是在减速器中?还是它必须做一个 CRUD 后端响应?
我个人会把复制功能放在减速器中。这仍然需要采取新的行动。它的 type
将是 COPY_TODO
并且它还会包含您要复制的待办事项的 id
。
reducer 看起来像这样:
case COPY_TODO: {
const todoToCopy = state.find(todo => todo.id === action.id);
if (todoToCopy) {
return [
{
...todoToCopy,
id: state.reduce((maxId, todo) => Math.max(todoToCopy.id, maxId), -1) + 1,
},
...state
];
}
return state;
}
这会找到状态中现有的待办事项,复制它并将 id
更新为高于当前最高 id
的 1,因此它将是唯一的。
在 Redux Todo 示例中。
https://github.com/reactjs/redux/tree/master/examples/todomvc
您将如何创建 "copy" 功能。基本上,使用现有的待办事项数据(待办事项的名称)添加新的待办事项。
我想知道这是否是通过动作完成的?还是在减速器中?还是它必须做一个 CRUD 后端响应?
我个人会把复制功能放在减速器中。这仍然需要采取新的行动。它的 type
将是 COPY_TODO
并且它还会包含您要复制的待办事项的 id
。
reducer 看起来像这样:
case COPY_TODO: {
const todoToCopy = state.find(todo => todo.id === action.id);
if (todoToCopy) {
return [
{
...todoToCopy,
id: state.reduce((maxId, todo) => Math.max(todoToCopy.id, maxId), -1) + 1,
},
...state
];
}
return state;
}
这会找到状态中现有的待办事项,复制它并将 id
更新为高于当前最高 id
的 1,因此它将是唯一的。