TypeError: Cannot read properties of null (reading ‘insertBefore‘) vue项目报错

本地无论怎么样都不会报错,但是部署到服务器之后,切换到某个路由之后再切换路由之后就疯狂报错,百思不得其解,网上搜了一下说是主要又三个原因造成,粘贴一段我搜索到的,我觉得说的也很有道理,但是并不能解决我的问题。

1、v-if 导致

在 v-if 值为 false 时,如果操作了 v-if 控制的 DOM,可能会因为该 DOM 元素不存在而报错。

解决方案:v-show 替换 v-if

2、el-dialog 组件导致

默认弹框是关闭的,DOM中没有弹框中的内容。打开弹框再关闭后,弹框中的 DOM 元素没有被销毁,可能会因为不该存在的 DOM 元素而报错(我的报错就是由此导致)。

解决方案:给 el-dialog 组件增加 destroy-on-close 属性

3、el-table 组件导致

el-table-column渲染时报错,若 scope.row.field(field为任意字段值)不存在,对其直接执行 length、toString() 等方法而报错。

解决方案:scope.row.field?.length
————————————————
版权声明:本文为CSDN博主「李小苶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_26834399/article/details/123826764

之后我把每一块代码注掉部署注掉部署之后发现是我的table有问题,跟他说的第三个原因好像是同一个,原来是我在template中调用了方法格式化数据,但是这个数据可能不存在,在这里进行兼容处理一下就解决了

猜你喜欢

转载自blog.csdn.net/a9874561328/article/details/126856243