【问题标题】:Typescript: Cannot read property 'toLowerCase' of undefined打字稿:无法读取未定义的属性“toLowerCase”
【发布时间】:2017-07-21 09:28:27
【问题描述】:
我在线收到此错误:
return filter ? value.filter(element => element.type.toLowerCase().indexOf(filter.toString().toLowerCase()) != -1) : value;
当element.type 为空字符串时(过滤空列)。如何解决这个问题?
【问题讨论】:
标签:
angular
typescript
angular2-filtering
【解决方案1】:
如消息所述:element.type 是 undefined。在您的filter 电话中添加一个检查。像这样的东西,你放什么取决于你期待什么,我只能猜测。
return filter
? value.filter(element => element.type && element.type.toLowerCase().indexOf(filter.toString().toLowerCase()) != -1)
: value;
【解决方案2】:
说得好,错误本身给出了解决方案,因为传递给小写的值是null 或undefined。
只需添加到您的代码行中,您就会看到错误发生
if(somevalue != null || somevalue != undefined)
{ ... }
【解决方案3】:
这个错误本身给出了解决方案,因为传递给小写的值是 null 或未定义。
要解决此类错误,请将要传递的数据的语句放在if 语句中。
喜欢:
if(somevalue != null || somevalue != undefined)
{ ... }
将语句放在if 语句中解决了我的问题。