4 回答
TA贡献1719条经验 获得超6个赞
此问题是因为数组引用未更改。
onClick={() => {
const list = [...exerciseList]
list.push(list.shift());
setExerciseList(list);
}}
TA贡献1815条经验 获得超10个赞
这是因为您正在exerciseList直接修改数组,但您不应该这样做,因为状态更新将看到列表是相同的并且不会触发重新渲染。相反,制作数组的副本,然后使用setExerciseList:
const newList = [...exerciseList]
newList.push(newList.shift())
setExerciseList(newList)
TA贡献1859条经验 获得超6个赞
这是因为 state 中的数组引用没有改变。像这样更新 setState 调用,
<button
onClick={() => {
exerciseList.push(exerciseList.shift());
setExerciseList([...exerciseList]);
console.log(exerciseList);
}}
>
Done
</button>
TA贡献1848条经验 获得超6个赞
您必须更改数组引用以反映状态中的情况。
setExerciseList([...exerciseList]);
工作代码 - https://codesandbox.io/s/react-playground-forked-ohl1u
添加回答
举报