将项目添加到数组(状态)并且它正在更新状态中的先前记录
Posted
技术标签:
【中文标题】将项目添加到数组(状态)并且它正在更新状态中的先前记录【英文标题】:Adding an item to an array (state) and it is updating the previous record in the state 【发布时间】:2021-02-19 19:28:07 【问题描述】:我的状态有一个对象数组,每次触发动作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】:问题已解决。
它根本与减速器或动作无关。整个问题是一个错误,我在没有使用扩展运算符的情况下将具有值的对象分配到一个新变量中,所以整个事情都被立即更改了。
问题解决了。 豪尔赫
【讨论】:
以上是关于将项目添加到数组(状态)并且它正在更新状态中的先前记录的主要内容,如果未能解决你的问题,请参考以下文章