解决:ProTable一次勾选上千条数据并分页勾选,页面卡顿问题

文章介绍了如何在antd的Table组件中启用虚拟列表功能,通过安装和使用virtuallist-antd插件,设置Protable组件的components属性,并提供了一个示例代码展示如何配置虚拟列表的高度、数据变更后的处理以及行选择功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最新发现:antd中Table组件自带有virtual属性,可设置为虚拟列表。暂未实际测试。

一、安装插件virtuallist-antd

npm install --save virtuallist-antd

二、在页面中设置Protable组件的components属性即可。

// demo.tsx
import { useMemo } from 'react';
import { VList } from 'virtuallist-antd';

const VComponents = useMemo(() => {
    // 使用VList 即可有虚拟列表的效果
    return VList({
      height: 400, // 此值和scrollY值相同. 必传. (required).
      resetTopWhenDataChange: false, // 默认为true. 是否数据变更后重置滚动条.
    });
}, []);

// _selectedRowKeys为勾选的rowKey对应的字段值集合
const changeSelect = (_selectedRowKeys: string|number[], selectedRows: Record<string, any>[]) => {
  setSelectedList(selectedRows);
};

<ProTable
   ... // 省略code
   scroll={x: 1200, y: 400}
   rowKey="id"
   rowSelection={{ 
    onChange: changeSelect,
    preserveSelectedRowKeys: true, // 跨页保留之前勾选项 
   }}
  components={VComponents}
/>

参考网址:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值