table是一些管理系统经常需要使用的组件,如果想要在table中同时操作多项,可能需要在前面添加checkbox,今天在项目终于到一个坑,使用的是antd组件库,但是在按照官网的例子引入时,发现点击其中某一行的checkbox,会将所有行的checkbox同时选中
在查阅官方文档后,发现有一个selectedRowKeys属性,文档上说selectedRowKeys需要和onChange 进行配合进行配合使用,onChange方法有两个参数function(selectedRowKeys, selectedRows),第二个参数表示当前行的数据,第一表示的是数据中的key值,这个就很关键,如果你的数据中没有绑定key这个字段,那么这个参数输出的就是undefined,所有需要在数据中绑定一个唯一的key值,可以和数据中的id保持一直,具体代码:
const { selectedRowKeys } = this.state
const rowSelection = {
selectedRowKeys,
onChange:this.onSelectChange
}
<Table
columns={this.state.columns}
dataSource={this.state.auditCommonModelLists}
rowSelection={rowSelection}
/>
onSelectChange = (selectedRowKeys, selectedRows) => {
// console.log(selectedRowKeys, selectedRows)
this.setState({selectedRowKeys})
}