1. 程式人生 > 其它 >Cannot read properties of null (reading ‘insertBefore‘)

Cannot read properties of null (reading ‘insertBefore‘)

一、報錯現象

vue3 + element plus 專案,本地啟動時,頁面進行所有操作都正常;部署到test環境後,資料驅動DOM變化的操作會導致如下報錯。

二、可能原因及解決方案

經過分析出現報錯的操作步驟及多方資料查詢,不同情況下的報錯,其原因不同。遇到這種問題的同學可以從以下幾方面進行排查。

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