arrays - 将项目添加到数组(状态)并且它正在更新状态中的先前记录
问题描述
我的状态有一个对象数组,每次RECIPE_UPDATED
触发动作时,都会将一个新对象添加到数组中。数组的第一项是由 action 生成的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;
任何想法如何解决这个问题?
解决方案
问题解决了。
它根本与减速器或动作无关。整个问题是一个错误,我在没有使用扩展运算符的情况下将具有值的对象分配到一个新变量中,所以整个事情都被立即改变了。
问题解决了。乔治
推荐阅读
- python - Python:两台计算机之间的目标不可达(端口不可达)
- python - Yolov3中的自定义锚点
- c# - C# LINQ to Entities - 检索等待列表记录的所有记录和位置
- python - Peewee 如何选择每 n+ 行?
- java - Android CardView 使用 app:cardCornerRadius="5dp" 时不圆角
- python-3.x - 使用 pip 在没有 Anaconda 的情况下安装 Spyder
- python - keras model.save() 没有保存
- wpf - OIDCClient LogoutAsync 抛出 SemaphoreFullException
- django - 以整数形式获取 CharField 的值
- windows - Torch 未使用启用 CUDA 的 Windows 10 编译