一、报错问题
Cannot read properties of null (reading 'style')at patchStyle (runtime-dom.esm-bundler.js:104:22)
二、错误排查
这类报错一般是在已经开发好后,后面测试时突然发现的,所以不好排查错误原因。
三、可能原因及解决方案
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.field(field为任意字段值)不存在,对其直接执行 length、toString() 等方法而报错。
解决方案: 先判断field字段是否存在,scope.row.field?.length
一个组件模板中存在多个元素
尽管Vue 3允许一个组件模板中存在多个元素,但是如果你这样写,有时也会出现上述错误。
解决方案: 在模板内你写的多个标签外面包裹一层元素,或者给某个标签添加v-bind=“$attrs”
。