Rei*_*ran 6 javascript typescript reactjs react-table react-table-v7
我有一个反应表,我想删除或修改我的数据。我的所有单元格的代码如下。
deleteTableElement = (row) => {
let data = this.state.list.data;
data.splice(row.id, 1);
this.setState({
list:{
...this.state.list,
data:data
}
})
};
actionsCell = (columns) => {
columns.push({
Header: "Accion",
Cell: (props) => {
console.log(props);
return (
<div
style={{
display: "flex",
justifyContent: "space-around",
}}
>
<i
onClick={() => this.deleteTableElement(props.row)}
className="material-icons"
style={{ color: "red", cursor: "pointer" }}
>
delete
</i>
</div>
);
},
});
return columns;
};
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我想修改该项目。反应表没有更新。
每当你的组件意外地没有更新时,都是因为你正在改变状态。从字面上看,100% 的情况下:
let data = this.state.list.data;
data.splice(row.id, 1); // <- splice mutates an array, mutating state is bad
this.setState({
list:{
...this.state.list,
data:data
}
})
Run Code Online (Sandbox Code Playgroud)
应该:
this.setState({
list:{
...this.state.list,
data:data.filter((d,i) => i !== row.id)
}
})
Run Code Online (Sandbox Code Playgroud)