antd table表格 选中项 切换分页保留之前的选中项
时间: 2024-05-12 07:13:49 浏览: 144
如果你使用的是 antd 的 Table 组件,可以通过以下步骤来实现在分页切换时保留之前的选中项:
1. 在 Table 组件中,设置 rowSelection 属性,该属性用于控制行选择功能。
2. 在 rowSelection 中,设置 selectedRowKeys 属性,该属性用于存储当前选中的行的 key 值。
3. 在 onChange 回调函数中,通过参数 pagination 获取当前的分页信息,并将 selectedRowKeys 存储到 state 中。
4. 在 render 中,通过 state 中的 selectedRowKeys 属性,将之前选中的行重新选中。
下面是一个示例代码:
```
class MyTable extends React.Component {
state = {
selectedRowKeys: [], // 存储当前选中的行的 key 值
};
onSelectChange = selectedRowKeys => {
// 更新选中的行
this.setState({ selectedRowKeys });
};
render() {
const { selectedRowKeys } = this.state;
const rowSelection = {
selectedRowKeys,
onChange: this.onSelectChange,
};
const dataSource = [
{ key: '1', name: 'Mike' },
{ key: '2', name: 'John' },
{ key: '3', name: 'Lucy' },
{ key: '4', name: 'Tom' },
];
const columns = [
{ title: 'Name', dataIndex: 'name', key: 'name' },
];
return (
<Table
rowSelection={rowSelection}
dataSource={dataSource}
columns={columns}
pagination={{
pageSize: 2,
onChange: (page, pageSize) => {
// 获取当前分页的选中行
const { selectedRowKeys } = this.state;
// 更新分页信息
this.setState({
selectedRowKeys: [],
});
},
}}
/>
);
}
}
```
在上面的代码中,我们定义了一个 Table 组件,该组件包含一个 rowSelection 属性,用于控制行选择功能。在 onChange 回调函数中,我们获取当前的分页信息,并将之前选中的行存储到 state 中。在 render 中,我们通过 state 中的 selectedRowKeys 属性,将之前选中的行重新选中。
阅读全文