Javascript 如何在react js中更新/更改数组中对象的值?
我有一个数组。哪个名称是dynamicform,而此数组中的名称是have objectJavascript 如何在react js中更新/更改数组中对象的值?,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我有一个数组。哪个名称是dynamicform,而此数组中的名称是have object const dynamicform =[ { id: Math.round(Math.random() * 36 ** 12).toString(36), mainlabel: checklistlabel, type: inputtype, grid: inputgrid, CheckLists: [ { ty
const dynamicform =[ {
id: Math.round(Math.random() * 36 ** 12).toString(36),
mainlabel: checklistlabel,
type: inputtype,
grid: inputgrid,
CheckLists: [
{
type: 'checkbox',
label: "Label one",
},
],
},
{
id:id: Math.round(Math.random() * 36 ** 12).toString(36),
name:"john",
type:"text"
}]
我只想在CheckLists数组中推送一个新对象,所以我写了这个
setDyanmicForm([
...dynamicform,
dynamicform.map((form, idx) =>
form.CheckLists.push({
type: 'checkbox',
label: defualtchecklabel,
})
)
]);
但这是一个错误
TypeError:无法读取未定义的属性“push”
发生上述错误是因为dynamicForm中存在第二个元素。请参见,该元素中不存在检查表属性 您可以为检查列表添加检查,或者如果必须为每个项目推送该元素,则可以执行以下操作
form.CheckLists = form.CheckLists || [];
在将元素推入检查列表之前添加此项
注意:您没有从映射中分解结果。正确地分解它,否则您将在setDyanmicForm中得到一个数组作为元素。发生上述错误是因为dynamicForm中存在第二个元素。请参见,该元素中不存在检查表属性 您可以为检查列表添加检查,或者如果必须为每个项目推送该元素,则可以执行以下操作
form.CheckLists = form.CheckLists || [];
在将元素推入检查列表之前添加此项
注意:您没有从映射中分解结果。正确地分解它,否则您将在setDyanmicForm中得到一个数组作为元素。您需要一些唯一的标识符来跟踪需要更新值的对象。您的id不唯一此字段中的哪个字段唯一?您需要一些唯一标识符来跟踪需要更新值的对象。您的id不唯一此字段中的哪个字段唯一?