如何更改数组中对象的数组?

时间:2019-12-15 07:53:24

标签: reactjs material-ui

我在Material-ui框架中使用React。在文档中,有an example个带有芯片的select,它是由一个数组构成的。在那里,他们以这种方式删除并添加数组中的值:

  const [personName, setPersonName] = React.useState([]);

  const handleChange = event => {
    setPersonName(event.target.value);
  };

我需要做同样的事情,但是要修改数组中对象的数组,就像这样:

const [data, setData] = React.useState([{ someData: 'data', array: [1,2,3] }]);

const handleChange = event => {
    setData(???);
  };

我找到了可能的解决方法here,但是它对我不起作用。预先谢谢你。

1 个答案:

答案 0 :(得分:3)

您可以映射状态数组并在那里更新

const [data, setData] = React.useState([{ someData: 'data', array: [1,2,3] }]);

const handleChange = event => {
   setData(() => {
      return data.map((item) => {
         return {
            ...item,
            array: [...item.array, event.target.value]
         } 
     })
   });
};

首先,您将遍历item数组中的每个data,并通过修改其中的每个data对象来返回新的item数组。

here is a working code sample