我在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,但是它对我不起作用。预先谢谢你。
答案 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
数组。