报错集锦

153 阅读1分钟

关于控制台输出Uncaught (in promise) TypeError: Cannot read properties of null (reading ‘insertBefore‘)

目前的项目是 进入后有很多应用 点击相应的应用进入 显示对应的导航栏 问题是:进入某一个应用后再次刷新 点击导航栏时报错点不开 排查了很多 以为是写的判断有问题 或者是刷新时的某步操作有问题 结果都试着写死了还是不行

于是就搜索了这个报错 得到了

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

导航栏有用v-if控制是否显示此项 原来就是这个v-if导致的

so 改为v-show就好了

传送门