代码之家  ›  专栏  ›  技术社区  ›  Morton

无法读取null的属性“toLowerCase”

  •  0
  • Morton  · 技术社区  · 6 年前

    我过滤我的对象,但得到错误

    无法读取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”

    为什么我的名字有价值 Three Husbands 导致错误的原因是什么?

    有什么办法可以避免吗?

    0 回复  |  直到 5 年前
        1
  •  0
  •   Tiago Vaccari    5 年前

    在第一次呈现组件时,inputName为null;在尝试筛选时,第一次调用该方法并接收null。

    inputName=空

    您还需要检查inputName!==空