需求: Table切换分页时,保存历史多选数据
方法:antd提供了preserveSelectedRowKeys,类型为 Boolean,为 true时会在更新时记住之前选择的数据。(需要指定rowKey)
代码参考:
const [modelSelectedRowKeys, setModelSelectedRowKeys] = useState<number[]>([]);
const onSelectChange = (newSelectedRowKeys: React.Key[]) => {
console.log('selectedRowKeys changed: ', newSelectedRowKeys);
setModelSelectedRowKeys(newSelectedRowKeys as number[]);
};
<TableExt
rowKey="id"
key="id"
scroll={{ x: 1000 }}
columns={modelColumns}
dataSource={modelDataSource}
pagination={{
...modelPagination,
onChange: async (page, pageSize) => {
await onGetMemberList({ pageNum: page, pageSize });
},
showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共${total}条数据`,
}}
rowSelection={{
preserveSelectedRowKeys: true,
onChange: onSelectChange,
selectedRowKeys: modelSelectedRowKeys,
}}
/>