我有以下几点state
:
const[images,setImages] = useState([
{src: 'stringSRC1', selected: false},
{src: 'stringSRC2', selected: false},
{src: 'stringSRC3', selected: false}
]);
我正在使用以下代码更新它(切换选定状态):
function handleImageClick(index) {
props.setImages((prevState)=>{
const aux = Array.from(prevState);
aux[index].selected = !aux[index].selected;
return aux;
});
}
它按预期工作。但我想到了一件事。
当我从 复制数组时prevState
,我正在创建一个新数组,但对象(存储为引用)将保持不变。我已经测试过了,当你像这样复制数组时,它们不会改变。
问题
这是一种不好的做法吗?我是否应该费心深复制数组,就像创建一个新数组并创建全新的对象一样?或者这样就好了?