当前位置:首页 > 技术分析 > 正文内容

element-ui表格组件el-table多选时报错

项目中用 element-ui 的表格组件 el-table 渲染列表数据,刚开始进入页面数据为空时,第一列的全选勾选会直接是禁止状态,当表格有数据时全选勾选才是可选状态,这样是没问题的。

有数据时,全选按钮可勾选:

数据为空时,全选按钮为禁选状态:

但是当点击筛选项再次调后端接口查询时,当无数据时全选勾选框居然是可选状态,而且一勾选还会报错:Uncaught TypeError: Cannot read properties of null (reading 'forEach')

刚开始以为是 element-ui 的bug,再 github 仓库里搜了一圈好像也没人遇到类似的问题,最终翻看组件源码才找到问题所在:

上面的报错就是因为 el-table 的 data 数据呗传了一个 null 值进去,引起了报错。

在 element-ui的 el-table 源码中找到,全选狂的禁选判断状态是根据:store.states.data && store.states.data.length === 0,当我们直接传一个 null 进去时,根据判断全选勾选框是不会被禁选掉的,触发勾选事件时直接用 null 来 forEach 遍历引起了报错。

el-table 的文档上有明确 data 的类型为 array,所以如果正常传数组是没问题的,就怕遇到辣鸡后端啥空值都喜欢搞个 null,前端如果不处理下直接用就容易出问题。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/4031.html

分享给朋友:

“element-ui表格组件el-table多选时报错” 的相关文章

Excel VBA 收费单据打印/一步一步带你设计【收费管理系统】12

本文于2023年6月10日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!☆本期内容概要☆用户窗体设置:收费结算模块设置(7)单据打印大家好,我是冷水泡茶,前几期我们分享了【收费管理系统】的设计,最近一期是(Excel VBA 收费结算模块/一步一步带你设计【收费管理系统】11),...

内存问题探微

这篇文章是我在公司 TechDay 上分享的内容的文字实录版,本来不想写这么一篇冗长的文章,因为有不少的同学问是否能写一篇相关的文字版,本来没有的也就有了。说起来这是我第二次在 TechDay 上做的分享,四年前第一届 TechDay 不知天高地厚,上去讲了一个《MySQL 最佳实践》,现在想起来那...

身体越柔软越好?刻苦拉伸可能反而不健康 | 果断练

坐下伸直膝盖,双手用力向前伸,再用力……比昨天前进了一厘米,又进步了! 这么努力地拉伸,每个人都有自己的目标,也许是身体健康、线条柔美、放松肌肉、体测满分,也可能为了随时劈个叉,享受一片惊呼。 不过,身体柔软,可以享受到灵活的福利,也可能付出不稳定的代价,并不是越刻苦拉伸越好。太硬或者太软,都不安全...

el-table内容\n换行解决办法

问题请求到的数据带有换行符 '\n'但页面展示时不换行statusRemark: "\"1、按期完成计划且准确率100%,得100分;\n2、各项目每延误1天,扣1分;每失误1次或者员工投诉1次,扣3分,失误层面达到公司级影响较大的,该项绩效分数为0\"\n&...

虚幻引擎5.5发布

IT之家 11 月 13 日消息,虚幻引擎 5.5 现已发布。据介绍,新版本虚幻引擎在动画创作、虚拟制作和移动游戏开发方面取得进步;渲染、摄像机内视觉特效和开发人员迭代等领域的部分功能已可用于生产。IT之家整理部分功能亮点如下:动画Sequencer增强虚幻引擎的非线性动画编辑器 Sequencer...

12种JavaScript中最常用的数组操作整理汇总

数组是最常见的数据结构之一,我们需要绝对自信地使用它。在这里,我将列出 JavaScript 中最重要的几个数组常用操作片段,包括数组长度、替换元素、去重以及许多其他内容。1、数组长度大多数人都知道可以像这样得到数组的长度:const arr = [1, 2, 3]; console.log(a...