Angular 6 не может прочитать свойство «в нижнем регистре» неопределенного в поле поиска с фильтром

#typescript #search #filter #angular6

#машинописный текст #Поиск #Фильтр #angular6

Вопрос:

Я пытаюсь получить результат поиска. я использовал функцию фильтра, но получил сообщение об ошибке

 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()) 
);
 

}

Спасибо

Комментарии:

1. Предполагая, что то, что вы написали выше, отражает ваш фактический код, свойство category or designation одной из ваших статей является undefined .

Ответ №1:

Не могли бы вы, пожалуйста, проверить свой массив this.article? В некоторых статьях категория или обозначение не включены, поэтому возникает эта ошибка.

Вы можете устранить эту ошибку, поставив условие

 if(article.category amp;amp; article.designation){}