我的状态有一个对象数组,每次触发动作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;
有什么想法可以解决这个问题吗?
答案 0 :(得分:0)
问题解决了。
它根本与减速器或动作无关。整个问题是一个错误,因为我没有使用散布运算符就将具有值的对象分配到新变量中,所以整个事情马上被更改了。
问题解决了。 豪尔赫