无法读取null的属性“ toLowerCase”

时间:2019-05-06 02:13:36

标签: javascript

我过滤了对象但收到错误

  

无法读取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 
    );
  } 
});

这是调试视图 enter image description here

我发现问题来自enName 因为当我更改代码

enName.toString().toLowerCase().indexOf(inputName) >= 0

错误将变为

  

无法读取null的属性“ toString”

为什么我的enName的值Three Husbands会导致错误?

有什么办法可以避免?

1 个答案:

答案 0 :(得分:0)

在第一次呈现组件时,inputName为null,而当您尝试过滤时,该方法在第一次被调用且接收到null。

inputName = null

您还需要检查inputName!== null