vue3 生產環境報Cannot read property 'insertBefore' of null


報錯出現場景

本人使用的是vue 3.x UI使用的是element-plus ,開發環境不會報錯,打包后 報錯

image-20210821112232995

排查后發現都是el-table-column 組件 報錯 導致虛擬dom 進行diff算法是報錯

錯誤分析

<el-table-column prop="typeId" align="center" label="類型">
    <template #default="scope">
        <div>
            {{
            	remarkTypeList.filter(v => v.id == scope.row.typeId)[0]?.name   // 數據一開始,這里的下標[0]undefined 
            }}
        </div>
    </template>
</el-table-column>
 <el-table-column prop="attr" width="160" label="報關屬性">
     <template #default="scope">  
         <el-select                   
             v-model="scope.row.attr[0].childrenChecked"    																	
             placeholder="請選擇" >						
             .....

         </el-select>
     </template>
</el-table-column>
// 一開始 tableData是[]時, 導致 scope.row是{},.attr就是undefined,后面的自然報錯
// 沒搞明白tableData是[]時, 為什么位運行scope.row.attr[0].childrenChecked,

 <el-table-column prop="list" label="字段信息">
     <template #default="scope">
         <span>{{ tempFilter(scope.row.field) }}</span>
     </template>
</el-table-column>
 const tempFilter = (field => {    
     let arr = field.split('|')  // 同上 一開始 tableData是[]時, 導致 scope.row.field是undefined,.split 報錯
     ...
 }
     // 也沒搞明白為什么一開始會走

希望對大家有所幫助


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM