Не удается прочитать свойство 'toLowerCase' из неопределенного React - PullRequest
0 голосов
/ 10 апреля 2020

я новичок в stackoverflow и реагирую, у меня есть некоторые проблемы. Вот код.

onSearchChange = (event) => {
  this.setState({ searchfiled: event.target.value })
}

render() {
  const filteredRobots = this.state.robots.filter(robots => {
    return robots.name.toLowerCase().includes(this.state.searchfiled.toLowerCase());
  })
  return(
    <div className='tc'>
      <h1>Robofriends</h1>
      <SearchBox searchChange={this.onSearchChange}/>
      <CardList robots={filteredRobots}/>
    </div>
  );
}

Я получаю эту ошибку TypeError: Невозможно прочитать свойство 'toLowerCase' из неопределенного. Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 10 апреля 2020

Я понял, вы получили ошибку при печати в фильтре. Вы получили это:

const filteredRobots = this.state.robots.filter(robots =>{
return robots.name.toLowerCase().includes(this.state.searchfiled.toLowerCase());
})

Это должно быть так:

const filteredRobots = this.state.robots.filter(robot =>{
return robot.name.toLowerCase().includes(this.state.searchfield.toLowerCase());
})

Вы ошиблись в searchField с помощью searchFiled.

Кроме того, в функции фильтра вы используете роботов, которые то же имя, что и импортированные «роботы», что может привести к ошибкам. Вместо этого используйте робота.

...