您好,登錄后才能下訂單哦!
這篇文章主要介紹了JavaScript虛值引起循環報錯怎么解決的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇JavaScript虛值引起循環報錯怎么解決文章都會有所收獲,下面我們一起來看看吧。
今天在工作中遇見一個場景:
父組件向子組件中傳遞數據的時候,在子組件中父組件傳遞過來的數據進行循環的時候;
子組件報錯
TypeError: Cannot read property 'menu_pid' of null at VueComponent.getTree
后來發現報錯的原因是在進行循環的時候,
getTree(list, parentId) {
let re = new Array();
for (let i = 0; i < list.length; i++) {
let pid = list[i].menu_pid; 提示這里報錯
//do something
}
return re;
},
發現父組件傳遞過來的數據 list 中有一個虛值[{},{},null];
就是這個虛值 null,導致報錯了;
然后就阻塞了代碼;導致后面的代碼無法運行;
以后如何避免這樣的問題;
在父組件向子組件傳遞數據的時候;
不要傳遞虛值,因為虛值會導致出現意想不到的錯誤;
在向下傳遞值的時候;要對值進行檢查;
底層在進行循環的時候,注意代碼的健壯性;
去除虛值
let arr = [11, 22, 33, null, '', undefined]
let newArr = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i]) {
newArr.push(arr[i])
}
}
console.log(newArr);//[11, 22, 33]
關于“JavaScript虛值引起循環報錯怎么解決”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“JavaScript虛值引起循環報錯怎么解決”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。