将项目添加到数组(状态),并更新该状态中的上一条记录

时间:2020-11-07 06:49:06

标签: arrays react-redux state store

我的状态有一个对象数组,每次触发动作RECIPE_UPDATED时,都会向该数组中添加一个新对象。数组的第一项由操作FIRST_RECIPE生成。参见下面的动作和减速器。

问题发生了,每次调用动作RECIPE_UPDATED时,它都会将新项目添加到数组中,但是它也更改了数组中之前的最后一个项目,到目前为止,我不知道为什么就是这样。

这些是动作创建者:

export const getFirstRecipe = (recipe) => ({
  type: "FIRST_RECIPE",
  payload: recipe,
});

export const updateRecipe = (data) => ({
  type: "UPDATED_RECIPE",
  payload: data,
});

这些是减速器:

const recipeHistoryReducer = (state = [], action) => {
  switch (action.type) {
    case "FIRST_RECIPE":
      return [action.payload];

    case "UPDATED_RECIPE":
      return [...state, action.payload];

    default:
      return state;
  }
};

export default recipeHistoryReducer;

有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

问题解决了。

它根本与减速器或动作无关。整个问题是一个错误,因为我没有使用散布运算符就将具有值的对象分配到新变量中,所以整个事情马上被更改了。

问题解决了。 豪尔赫