Angular 6 无法读取带过滤器的搜索框中未定义的 属性“toLowerCase”

Angular 6 cannot read property "toLowerCase' of undefined in search box with filter

我正在尝试获取搜索结果。我使用了过滤器功能,但出现错误

HomeComponent.html:13 ERROR TypeError: Cannot read property 'toLowerCase' of undefined

我的components.html

 <div class="row">
<input type="text" class="form-control" placeholder="search" (input)="filter($event.target.value)">

Mycomponents.ts

filter(keyWord: string) {
if (keyWord === undefined || keyWord.length === 0) {
  this.findAllArticles();
  return;
}
this.article = this.article.filter(article => 
  article.category.toLowerCase().includes(keyWord.toLowerCase()) || article.designation.toLowerCase().includes(keyWord.toLowerCase()) 
);

}

谢谢

你能检查一下你的 this.article 数组吗?在某些文章中 categorydesignation 未包含在内,因此会引发此错误。

您可以通过设置条件解决此错误

if(article.category && article.designation){}