无法读取未定义React的属性“ toLowerCase”

时间:2020-04-10 19:58:46

标签: reactjs undefined lowercase

我是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 个答案:

答案 0 :(得分:2)

我知道了,您在过滤器中输入错误。你明白了:

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

您在哪里使用searchFiled误认了searchField。

此外,在过滤器功能中,您正在使用与导入的“机器人”同名的机器人,这可能会导致错误。代替机器人。