Javascript React/Redux-将新状态设置为数组状态
我正在学习React/Redux,正在处理以下状态。该对象是一个数组,其中包含javascript对象:Javascript React/Redux-将新状态设置为数组状态,javascript,arrays,reactjs,state,react-redux,Javascript,Arrays,Reactjs,State,React Redux,我正在学习React/Redux,正在处理以下状态。该对象是一个数组,其中包含javascript对象: default_state = [ { id: 1, name: "Smith" }, { id: 2, name: "Matt" }, { id: 3, name: "Tom" } ]; 现在,在我的reducer中,我想覆盖数组中第二个对象的名称。我该怎么做?我想出了这样的办法,但似乎不对: case "SAVE
default_state = [
{
id: 1,
name: "Smith"
},
{
id: 2,
name: "Matt"
},
{
id: 3,
name: "Tom"
}
];
现在,在我的reducer中,我想覆盖数组中第二个对象的名称。我该怎么做?我想出了这样的办法,但似乎不对:
case "SAVE_CHANGES":
state = {...state, { id: 3, name: "Peter"};
因此,我想首先找到具有正确id的对象,然后覆盖此对象名称。现在我只是覆盖id和名称,显然也不起作用
我以前的想法是:
state = {...state, state[2].name="Peter"};
但这也不起作用。有什么建议吗?您只需克隆阵列,然后克隆要修改的项
// clone the array
const newState = [...state];
// clone the item
newState[2] = {...newState[2], name: "Peter" };
您只需克隆阵列,然后克隆要修改的项
// clone the array
const newState = [...state];
// clone the item
newState[2] = {...newState[2], name: "Peter" };
我得到一个语法错误。另外,您确定可以创建一个
常量
,然后覆盖它吗?我将其更改为一个let
,但仍然出现语法错误:解析文件时出现意外标记(56:22):
这取决于您在Babel中启用的阶段。如果启用阶段2,则语法有效。我没有覆盖常量变量。我正在修改它引用的对象。我得到一个语法错误。另外,您确定可以创建一个常量
,然后覆盖它吗?我将其更改为一个let
,但仍然出现语法错误:解析文件时出现意外标记(56:22):
这取决于您在Babel中启用的阶段。如果启用阶段2,则语法有效。我没有覆盖常量变量。我正在改变它所指的对象。