最简单的方式是使用Key来标识每一行数据,并在翻页时将选中的Key保存起来,然后在下一页加载数据时,根据保存的Key来判断是否选中该行。

具体步骤如下:

  1. 在Table组件中,添加一个属性rowKey,并将其值设置为每一行数据的唯一标识,例如行数据中的id字段。
<Table rowKey="id" ... />
  1. 在Table组件外部定义一个state,用来保存已选中的行的Key。
const [selectedKeys, setSelectedKeys] = useState([]);
  1. 在Table组件的rowSelection属性中,通过selectedRowKeys属性来设置已选中的行。
<Table rowSelection={{
  selectedRowKeys: selectedKeys,
  onChange: (selectedRowKeys) => setSelectedKeys(selectedRowKeys)
}} ... />
  1. 在翻页时,将已选中的Key保存起来。
const handlePageChange = (pageNumber) => {
  // 保存已选中的Key
  setSelectedKeys(selectedKeys);
  // 处理翻页逻辑
  // ...
};
  1. 在下一页加载数据时,根据保存的Key来判断是否选中该行。
const loadData = (pageNumber) => {
  // 加载数据逻辑
  // ...
  // 根据已选中的Key来判断是否选中该行
  const newSelectedKeys = selectedKeys.filter(key => {
    return data.some(item => item.id === key);
  });
  setSelectedKeys(newSelectedKeys);
};

通过上述步骤,即可实现在翻页后保留上一页已选中的行

最简单的方式解决antd Table组件selectedRows翻页后不保留上一页已选中items

原文地址: http://www.cveoy.top/t/topic/iEoS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录