React中更新useState()创建的值,没有重新渲染

523 阅读1分钟

问题

function update(index) {
	data.splice(index, 1);
    setData(data);
}

运行该函数后,并没有重新渲染。因为data保存的是数组的索引,使用splice后data的索引并没有更改。

解决方法

function update(index) {
	const newdata = cloneDeep(data);
    newdata.splice(index, 1);
    setData(newdata);
}

深度复制data到newData,然后将newData传给setData()函数。因为数组的索引变了,所以会重新渲染