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

最新发现: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}
/>

参考网址:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值