简述问题 : 动态路由在切换组件的时候 突然空白 刷新一下就好了,控制台有报错 本地不存在问题 打包以后问题才出现
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
解决的办法是第三种 将所有插槽内容添加三元运算 渲染过程中报错,重新渲染就没问题了