React Reducer - 将元素添加到现有元素

Posted

技术标签:

【中文标题】React Reducer - 将元素添加到现有元素【英文标题】:React Reducer - Add elements to existing element 【发布时间】:2022-01-06 17:07:44 【问题描述】:

我希望新的更新可以持续添加到“看板”中,但旧值会被签名。 enter image description here

动作-函数

  export const editExpense = (id, updates) => (
  type: "EDIT_EXPENSE",
  id,
  updates
);

减速机功能

case "EDIT_EXPENSE":
  return state.map((expense) => 
    if (expense.id === action.id) 
      return 
        ...expense,
        kanbanboard:[...action.updates]
      ;
     else 
      return expense;
    ;
  );

感谢您的帮助。

【问题讨论】:

【参考方案1】:

我看不到整个 reducer,但看起来您明确地覆盖了旧值。将其更改为:

case "EDIT_EXPENSE":
  return state.map((expense) => 
    if (expense.id === action.id) 
      return 
        ...expense,
        kanbanboard:[
         ...expense.kanbanboard, // you have to add your old state here
          
           ...action.updates
        ]
      ;
     else 
      return expense;
    ;
  );

【讨论】:

不错。有用。谢谢 很高兴听到!你能把问题标记为已回答吗?

以上是关于React Reducer - 将元素添加到现有元素的主要内容,如果未能解决你的问题,请参考以下文章

React Native with Redux 使用 reducer 将项目添加到收藏夹的问题

如何在 React Context 中使用 reducer 从数组中添加/删除?

将 Redux 添加到 React-Native 应用程序?

将 Blazor 组件渲染到现有 div(Blazor 无权访问)

将项目添加到 redux-toolkit 中的嵌套数组

访问作为对象的 reducer 有效负载的元素