ant design@5.1.7 / @5.2.1 selectedRowKeys翻页时只记录了当前页的rowkeys,清空了其他页的勾选?

官网的例子全选了第一页跟第二页的话,rowSelection.selectedRowKeys 通过 onchange 方法改变是会累加到两页的id

const App: React.FC = () => {
  const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]);

  const onSelectChange = (newSelectedRowKeys: React.Key[]) => {
    console.log('selectedRowKeys changed: ', newSelectedRowKeys);
    setSelectedRowKeys(newSelectedRowKeys);
  };

  const rowSelection = {
    selectedRowKeys,
    onChange: onSelectChange,
  };
 return (
    <Table rowSelection={rowSelection} columns={columns} dataSource={data} />
  );
};

然而我直接用官网的写法并不能累加,只能保存到当前页的id,清空了前面勾选的id

image.png
image.png

阅读 2k
2 个回答

官网示例的data是全量数据,分页并不刷新data,你的业务应该是切换页码的时候请求接口重新setState的吧,所以切页码就清空了

新手上路,请多包涵

Xnip2023-02-16_18-52-09.jpg
你好,看了一下antd的源代码(components/table/hooks/useSelection.tsx),selectedKeys与dataSource有关
我猜测是因为你的table使用的是分页请求,然后dataSource对应的是每一页的data,而不是全部data,所以勾选全部的时候选择的是当前这一页对应的key。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题