Javascript 如何在react js中更新/更改数组中对象的值?

Javascript 如何在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

我有一个数组。哪个名称是dynamicform,而此数组中的名称是have object

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不唯一此字段中的哪个字段唯一?