问题:
在react中使用useState()改变数组的值,通过控制台可以打印出改变之后的值,但是视图没有变化
有问题的代码:
const [list,setList] = useState([])
const deleteItem = (i: number) => {
list.splice(i, 1);
setList(list);
};
未发生改变的原因可能是因为list本身并没有变化,因为list变量存储的地址是不变的
解决:
让传入的新值和原来的数组指向的不是同一片内存,就能触发DOM的更新
const [list,setList] = useState([])
const deleteItem = (i: number) => {
list.splice(i, 1);
setList([...list]);
};
成功解决