我使用數據填充表格 - 使用fixed-data-table
,這是一個React.js組件。但是,在現階段這並不重要。Javascript:Uncaught TypeError:無法讀取屬性'indexOf'null
表中有問題源於的搜索框。
首先,這裏是代碼的有趣部分。
for (var index = 0; index < size; index++) {
if (!filterBy || filterBy == undefined) {
filteredIndexes.push(index);
}
else {
var backendInfo = this._dataList[index];
var userListMap = hostInfo.userList;
var userListArr = Object.values(userListMap);
function checkUsers(){
for (var key in userListArr) {
if (userListArr.hasOwnProperty(key) && userListArr[key].text.toLowerCase().indexOf(filterBy) !== -1) {
return true;
}
}
return false;
}
if (backendInfo.firstName.indexOf(filterBy) !== -1 || backendInfo.lastName.toLowerCase().indexOf(filterBy) !== -1 || backendInfo.countryOrigin.toLowerCase().indexOf(filterBy) !== -1
|| backendInfo.userListMap.indexOf(filterBy) !== -1) {
filteredIndexes.push(index);
}
}
}
這是渲染和最後一部分是拋出錯誤,如果你輸入的東西在桌上,一列返回給定細胞null
。
的事情是,我可以使代碼工作,如果我改變的最後部分..
try {
if (backendInfo.firstName.indexOf(filterBy) !== -1 || backendInfo.lastName.toLowerCase().indexOf(filterBy) !== -1 || backendInfo.countryOrigin.toLowerCase().indexOf(filterBy) !== -1
|| backendInfo.userListMap.indexOf(filterBy) !== -1) {
filteredIndexes.push(index);
}
}
catch(err) {
console.log('Exception')
}
隨着try/catch語句,它的工作原理100%按預期和處理的indexOf返回null .. 。但這不能成爲正確處理它的方式 - 我假設這種異常處理應該是罕見的例外,並且不應該在前端使用真正的異常處理後端。
如何在不使用try/catch的情況下處理標題中的錯誤?
提供變量值 –