我在数组中有4个对象,每个对象都有一个计数器键值对(即{'counter':3}),这些键值对基于计数器进行排序。我有一个排序功能,每次按下计数器按钮时,都会根据计数器值重新排序对象。我更新useState挂钩后,对象列表应该重新排序:
useEffect(() => {
let newObjects = sortObjects(oldObjects);
setObjects(newObjects);
}, [counter]);
即使对象数组已更改,这也不会重新渲染组件。但是,如果我像下面那样进行操作,它将正确地重新渲染组件。我的问题是为什么?上面的代码有什么问题,有什么不同?
useEffect(() => {
let newObjects = sortObjects(oldObjects);
setObjects([...newObjects]);
}, [counter]);