当前位置: 首页 > article >正文

Ant Design Vue 的 a-table 行选择分页时bug处理

有bug的伪代码如下(示例以 id 来作为 rowKey):

<a-table
    :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
    :columns="columns"
    rowKey="id"
    :pagination="pagination"
    :data-source="data"
/>    
onSelectChange(selectedRowKeys, selectedRows) {
  console.log('selectedRowKeys changed: ', selectedRowKeys, selectedRows);
  this.selectedRowKeys = selectedRowKeys;
}

当使用a-table对数据进行选择操作时,如果a-table有分页,并且选中的数据跨页,那么就会出现 selectedRowKeys.length 和 selectedRows.length 不一致的情况;

即 selectedRowKeys 的数据是完整的,而 selectedRows 的数据是有缺失的,会丢失其他页选中的数据。

解决方案:

将 a-table 的 row-selection 改为

:row-selection="{ selectedRowKeys: selectedRowKeys, onSelect: onSelect }"

选中执行的方法改为

onSelect(record, selected, selectedRows, nativeEvent) {
  if(selected) {
    this.selectedRows.push(record)
    this.selectedRowKeys.push(record.id)
  } else {
    const index = this.selectedRows.findIndex(item => item.id=== record.id)
    this.selectedRows.splice(index, 1)
    this.selectedRowKeys.splice(index, 1)
  }
}

http://www.kler.cn/a/380949.html

相关文章:

  • 【进阶sql】复杂sql收集及解析【mysql】
  • 使用命令行管理 Windows 环境变量
  • 「C/C++」C/C++的区别
  • 中国雕塑、
  • 借助 Aspose.Words,使用 C# 从 Word 文档中删除页面
  • 《TCP/IP网络编程》学习笔记 | Chapter 1:理解网络编程和套接字
  • 官方redis安装
  • React Hooks 为什么不能在 if 语句中使用???
  • 根据提交的二维数据得到mysql建表和插入数据实用工具
  • 全渠道供应链打造中企业定制开发2+1链动模式S2B2C商城小程序的策略与影响
  • 【Python环境配置-Step1】PyCharm 2024最新官网下载、安装教程
  • PyTorch实践-CNN-验证码识别
  • 高可用架构-业务高可用
  • Android Studio:connect time out
  • Redis-基本了解
  • 数学期望和联合概率密度
  • 20241105编译Rockchip原厂的Android13并给荣品PRO-RK3566开发板刷机
  • 软设师知识点-计算机网络
  • CODESYS 输出日志 Log
  • Java如何实现企业微信审批流程
  • 《2024中国城市音乐产业发展指数报告》重磅发布
  • Docker入门系列——镜像原理
  • 【数据分析】如何构建指标体系?
  • Cygwin下载及使用
  • MFC POST和Get
  • VSCode 上那些值得推荐的 CSS 插件