antd table 点击每行实现选中效果,支持多选
时间: 2024-05-03 22:23:03 浏览: 99
点击表格中的td选中多选框
要在 antd table 中实现点击每行实现选中效果,支持多选,可以使用以下步骤:
1. 在 table 组件中设置 rowSelection 属性,其中 type 为 checkbox,同时指定 onChange 方法和 selectedRowKeys、selectedRows 属性。
```jsx
import { Table } from 'antd';
const columns = [
{
title: 'Name',
dataIndex: 'name',
},
{
title: 'Age',
dataIndex: 'age',
},
{
title: 'Address',
dataIndex: 'address',
},
];
const data = [
{
key: '1',
name: 'John Brown',
age: 32,
address: 'New York No. 1 Lake Park',
},
{
key: '2',
name: 'Jim Green',
age: 42,
address: 'London No. 1 Lake Park',
},
{
key: '3',
name: 'Joe Black',
age: 32,
address: 'Sidney No. 1 Lake Park',
},
];
function onChange(selectedRowKeys, selectedRows) {
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
}
function App() {
const [selectedRowKeys, setSelectedRowKeys] = useState([]);
const rowSelection = {
type: 'checkbox',
onChange: (selectedRowKeys, selectedRows) => {
setSelectedRowKeys(selectedRowKeys);
onChange(selectedRowKeys, selectedRows);
},
selectedRowKeys,
};
return (
<Table rowSelection={rowSelection} columns={columns} dataSource={data} />
);
}
export default App;
```
2. 在 onChange 方法中,更新选中的行的 key 或者其他需要保存的信息。因为 onChange 事件的传参已经包含了选中的行的信息,所以可以将其保存到组件的状态中以备后续使用。
这样,当用户点击每行时,会选中该行,并触发 onChange 事件。在 onChange 事件中可以获取到已选中的行的信息,从而可以进行一些相关的操作。同时,由于设置了 rowSelection 属性,多选也是支持的。
阅读全文