【问题标题】:In the Redux todo example create "copy" function在 Redux todo 示例中创建“复制”功能
【发布时间】:2017-06-18 18:33:54
【问题描述】:

在 Redux Todo 示例中。

https://github.com/reactjs/redux/tree/master/examples/todomvc

您将如何创建“复制”功能。基本上,使用现有的待办事项数据(待办事项的名称)添加一个新的待办事项。

我想知道这是否是通过动作完成的?还是在减速机中?还是必须做一个 CRUD 后端响应?

【问题讨论】:

    标签: reactjs redux todomvc


    【解决方案1】:

    我个人会将复制功能放在减速器中。这仍然需要采取新的行动。它的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,因此它将是唯一的。

    【讨论】:

    • 谢谢!我最终使用了 findIndex 并增加了 id 的有效负载,但结构是相同的
    • 不错!是的,有几种方法可以解决。
    猜你喜欢
    • 1970-01-01
    • 2017-10-04
    • 2016-08-26
    • 2012-12-27
    • 2014-10-17
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    相关资源
    最近更新 更多