el-table反復報錯:ResizeObserver loop limit exceeded 解決辦法


最近在一個老項目中發現一個問題,el-table使用時,不斷觸發元素重繪,系統的錯誤監聽系統監聽到無數個ResizeObserver loop limit exceeded 錯誤

這個錯誤是在監聽系統中看到的,可能瀏覽器console不會報錯,如果要在本地開發中調試定位這個問題,可以在項目代碼里加入一個方法,打印window錯誤:
window.onerror = function (errorMessage, scriptURI, lineNumber, columnNumber, error) {
console.log('錯誤', errorMessage);
};
1
2
3
網上也提到可能是el-table的問題。最后定位到,el-table下的各列設置了min-width屬性,我們知道這個屬性在頁面寬度不夠時,element會根據各列設置的min-width,按比例計算寬度。而檢查發現,項目代碼里,在mounted鈎子里有修改el-table內元素寬高的代碼(可能是舊業務邏輯)
const overHg = document.getElementsByClassName('el-table__body')[0].clientHeight + 'px';
const wrapper = document.getElementsByClassName('el-table__body-wrapper')[0];
wrapper.style.maxHeight = overHg;
1
2
3
由於el-table的min-width屬性和此代碼同時作用於table組件造成沖突,dom元素不斷重繪,因此報錯ResizeObserver loop limit exceeded : 超出ResizeObserver循環限制
解決辦法是將此語句放在mounted之后執行即可

————————————————
版權聲明:本文為CSDN博主「溜溜的阿溜」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/cindy647/article/details/106523180/


免責聲明!

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



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