首页 > 解决方案 > 如何有选择地为具有两个对象数组的对象设置状态?

问题描述

如何将新对象添加到数据中:[] 使用 setState() 进行以下代码或完全替换数据?

    const [tableState, setTableState] = useState<TableState>({
    columns: [
      { title: "First Name", field: "firstName" },
      { title: "Last Name", field: "lastName" },
    ],
    data: [
      {
        firstName: "John",
        lastName: "Doe",
      },
      {
        firstName: "Jane",
        lastName: "Doe",
      },
    ],
  });

setState(prevState => ({...prevState.tableState, ???}))

标签: javascriptreactjssetstate

解决方案


hooks你在和传统之间混合setState

从上面的代码中,您应该使用setTableState函数来更新您的状态。

setTableState(prevState => ({
  ...prevState,
  data: [
    ...prevState.data,
    {
      firstName: 'New FirstName',
      lastName: 'New Last Name'
    }
  ]
}))

推荐阅读