一、報錯問題
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”
。