reactjs - TypeError: item.name.toLowerCase(...).include 不是函数 reactjs
问题描述
你好,我是这个 reactjs 的新手,我目前在 Egghead 尝试一些课程,当我尝试关于使用映射从数据数组创建 React 组件的主题时,我得到了一些错误,我不明白,因为我已经有相同的代码
import React from 'react'
class Filter extends React.Component{
constructor(){
super()
this.state = {
items : [],
filter :""
}
}
componentWillMount(){
fetch('https://swapi.co/api/people/?format=json')
.then(response => response.json())
.then(({results: items})=>
this.setState({items})
)
}
filter(event){
this.setState({filter: event.target.value})
}
render(){
let items = this.state.items
console.log(items)
if(this.state.filter){
items = items.filter( item =>
item.name.toLowerCase()
.include(this.state.filter.toLowerCase()))
}
return(
<div>
{this.state.filter}
<input type="text" onChange={this.filter.bind(this)}/>
{items.map(item => <Org key={item.name} org={item}/>)}
</div>
)
}
}
const Org = (props) => <h4 >{props.org.name}</h4>
export default Filter
当我尝试过滤它时显示此错误,就像我无法使用键名调用数组项,该数组从 api 获取
解决方案
您正在寻找的功能是includes
. 你犯了一个小错误
item.name.toLowerCase().includes(this.state.filter.toLowerCase()))
推荐阅读
- c# - 我不知道我的 lambda 表达式做错了什么,有人可以纠正我吗?
- python - 在 python 中,如何反转二维字典?
- javascript - Node.js 6.10 十六进制->BASE64->UTF8
- unit-testing - 单元测试失败 (JUnit+Mockito) - 空指针异常
- android - 如何在 android studio 的 facebook 上分享任何文字?
- c# - C# 同一个 DLL 的多个版本
- reactjs - “网络错误:尝试获取资源时出现 NetworkError。”
- objective-c - 如何以编程方式禁用安全输入?
- django - 未找到带有关键字参数“{'order_id': 'JUQEDJA6QQ'}”的“order_detail”的反向操作。尝试了 1 种模式:
- kubernetes - Kubernetes pod 因 CrashLoopBackOff 而崩溃