编写一个reducer函数,将不变的新项添加到嵌套的store属性中

时间:2019-12-14 18:34:23

标签: reactjs redux

我无法在reducer函数中编写正确的return语句,该函数将所有现有属性保留在completeExercises中,而只是将新属性添加到列表的末尾:

我的状态现在看起来像:

user: {
  completeExercises: {
    1p3223cyn5x: {
     complete: true
    }
  },
  entries: ""
}

在我调用该动作并通过有效载荷传递另一个练习的ID之后,我希望它保留所有现有的completeExercises并将我传递的ID添加到列表中:

user: {
  completeExercises: {
    1p3223cyn5x: {
      complete: true
    },
    2ky16b0v2kg: {
      complete: true
    }
  },
  entries: ""
}

1 个答案:

答案 0 :(得分:0)

如果您要保留现有属性并将其添加到列表的末尾,则reducer return语句应类似于:

return {
        ...state,
        completeExercises: {
          ...state.completeExercises,
          [payload.id]: {
            complete: true
          }
        },
        entries: {
          ...state.entries
        },
      };