这是不更新的列子
handleDelete = val => {
let { tableData } = this.state;
tableData.map((item, index) => {
if (item.userId === val) {
tableData.splice(index, 1);
}
return item;
});
this.setState({
tableData,
});
}
tabledata是一个引用型数据,我这样的写法tabledata虽然改变了值但是其引用地址没有被改变,因此react认为其虚拟Dom并没有被改变,所以不会重渲染。下面是更新后的代码
let tableData = [...this.state.tableData];
tableData.map((item, index) => {
if (item.userId === val) {
tableData.splice(index, 1);
}
return item;
});
this.setState({
tableData,
});
这样就解决了