我过滤了对象但收到错误
无法读取null的属性“ toLowerCase”
这是我的代码:
// tex is from <TextInput />
const inputName = tex.toString().trim().toLowerCase();
let filterData = [];
console.log('searchMovie =>', searchMovie);
searchMovie.filter(item => {
if (item.enName !== null || item.cnName !== null) {
console.log('item.enName =>', item.enName);
console.log('item.cnName =>', item.cnName);
filterData = searchMovie.filter(({ enName, cnName }) =>
enName.toLowerCase().indexOf(inputName) >= 0 ||
cnName.trim().toLowerCase().indexOf(inputName) >= 0
);
}
});
我发现问题来自enName
因为当我更改代码
enName.toString().toLowerCase().indexOf(inputName) >= 0
错误将变为
无法读取null的属性“ toString”
为什么我的enName的值Three Husbands
会导致错误?
有什么办法可以避免?
答案 0 :(得分:0)
在第一次呈现组件时,inputName为null,而当您尝试过滤时,该方法在第一次被调用且接收到null。
inputName = null
您还需要检查inputName!== null