要解决 Ant Design Table 组件 selectedRows 翻页后保留上一页已选中的 items,可以使用以下步骤:

  1. 在父组件中维护一个 selectedRows 的状态,用于保存选中的行数据。
  2. 在 Table 组件中,通过 rowSelection 属性来设置选择模式,并传入一个对象,其中 selectedRowKeys 属性绑定到 selectedRows 的 keys 值。
  3. 在 onSelectChange 事件中,更新 selectedRows 的状态。
  4. 在分页器的 onChange 事件中,获取当前页的选中项的 keys,并过滤出上一页已选中的项,将它们添加到 selectedRows 中。

以下是一个示例代码:

import React, { useState } from 'react';
import { Table } from 'antd';

const MyTable = () => {
  const [selectedRows, setSelectedRows] = useState([]);

  const onSelectChange = (selectedRowKeys, selectedRows) => {
    setSelectedRows(selectedRows);
  };

  const handlePageChange = (page, pageSize) => {
    // 获取当前页的选中项的 keys
    const currentPageKeys = selectedRows.map((row) => row.key);
    
    // 过滤出上一页已选中的项
    const prevPageSelectedRows = selectedRows.filter((row) =>
      currentPageKeys.includes(row.key)
    );

    // 将上一页已选中的项添加到 selectedRows 中
    setSelectedRows(prevPageSelectedRows);
  };

  const rowSelection = {
    selectedRowKeys: selectedRows.map((row) => row.key),
    onChange: onSelectChange
  };

  const columns = [
    // 列定义
  ];

  const dataSource = [
    // 数据源
  ];

  return (
    <Table
      rowSelection={rowSelection}
      columns={columns}
      dataSource={dataSource}
      pagination={{ onChange: handlePageChange }}
    />
  );
};

export default MyTable;

通过以上步骤,就可以实现 Ant Design Table 组件 selectedRows 翻页后保留上一页已选中的 items 的功能。

Ant Design Table 组件翻页保留已选中行数据解决方案

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

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