<Table rowKey="id" columns={columns} dataSource={tableData} rowSelection={rowSelection}/>
const [selectedRowKeys, setSelectedRowKeys] = useState([]); //选中的key
const [selectedRows, setSelectedRows] = useState([]); //选中的rows(不需要可以去掉)
//跨页选择
const rowSelection = {
selectedRowKeys,
onSelect: (record, selected) => {
if (selected) {
setSelectedRowKeys((before) => {
return [...before, record.id];
});
setSelectedRows((before) => {
return [...before, record];
});
} else {
setSelectedRowKeys((before) => {
return before.filter((el) => el !== record.id);
});
setSelectedRows((before) => {
return before.filter((el) => el.id != record.id);
});
}
},
onSelectAll: (selected, selectedRows, changeRows) => {
if (selected) {
setSelectedRowKeys((before) => {
const ids = changeRows.map((el) => el.id);
return [...before, ...ids];
});
setSelectedRows((before) => {
return [...before, ...changeRows];
});
} else {
const ids = changeRows.map((el) => el.id);
setSelectedRowKeys((before) => {
return before.filter((el) => ids.indexOf(el) == -1);
});
setSelectedRows((before) => {
return before.filter((el) => ids.indexOf(el.id) == -1);
});
}
},
};
antd table跨页选择
于 2022-03-17 15:46:13 首次发布