React.jsコンポーネントであるfixed-data-table
を使用して、データをテーブルに設定しています。しかし、この段階でそれほど重要ではありません。Javascript:Uncaught TypeError:nullの 'indexOf'プロパティを読み取ることができません
テーブルには、問題の原因となる検索ボックスがあります。
まず、コードの興味深い部分を示します。
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/catchで
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')
}
は、それが意図したとおりに、100%の作品とのindexOfはnullを返すハンドル..私は最後の部分を変更した場合、私は、コードを動作させることができ、..ですしかし、これは適切に処理する方法ではありません - 私は、この種の例外処理はまれな例外であると想定されています。実際にはフロントエンドでバックエンド。
try/catchを使用せずにタイトルのエラーを処理するにはどうすればよいですか?
は変数の値を提供します –