最近用vue3在做一个项目的时候,使用了element-plus中的组件el-table,在本地运行的时候一点错误也没有,但是打包后放到线上环境就开始报错。TypeError: Cannot read properties of null (reading 'insertBefore')和TypeError: Cannot read properties of null (reading 'emitsOptions')
这种报错可能存在三种情况。
然后查看代码的时候,我这边应该是第三种情况,改过之后就好啦,非常硬气的告诉测试小姐姐,不用测了直接上。
情景 | 解释 | 解决方案 |
① v-if 导致 | 在 v-if 值为 false 时,如果操作了 v-if 控制的 DOM,可能会因为该 DOM 元素不存在而报错。 | v-show 替换 v-if |
② el-dialog 组件导致 | 默认弹框是关闭的,DOM中没有弹框中的内容。打开弹框再关闭后,弹框中的 DOM 元素没有被销毁,可能会因为不该存在的 DOM 元素而报错(我的报错就是由此导致)。 | 给 el-dialog 组件增加 destroy-on-close 属性 |
③ el-table 组件导致 | el-table-column渲染时报错,若 scope.row.xx(xx为任意字段值)不存在,对其直接执行 length、toString() 等方法而报错。 | scope.row.xx?.length |
总结
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)