为什么返回错误 .contains() 不是一个函数



我收到错误.contains((不是一个函数。完整的代码在这里,可能太多了,无法粘贴到这里,所以这里是相关的位。位置是全局设置的,也是查询的,然后在组件中设置状态。

*编辑,o是单个位置,json文件中有5个标题和长/纬度

let locationslist = this.state.locations
.filter(o => o.contains(this.state.query))
.map(o => <li key={o}
type="button"
className="btn"
id="filterMarker"
tabIndex="0">{o}</li>)
render() {
return (
<div>
<div id="filtercontainer">
<input
id="filterbar"
type="text"
placeholder="Filter"
onChange={this.handleQueryChange} value={this.state.query} />
<ul>
{this.state.locationslist}
</ul>
</div>
<div id="map" />
</div>
)
}

您正在对位置对象调用contains。您的意思是检查标题是否包含查询字符串?

请尝试o.title.includes(this.state.query)

contains似乎已弃用。您应该改用includes

看起来位置是来自 JSON 的简单 Javascript 对象。您是否正在寻找特定的密钥?如果是这样,我会和o => o[this.state.query]一起去.如果您正在寻找标题匹配,我会选择o => o.title.contains(this.state.query)甚至更好的,使其不区分大小写o => o.title.toLowerCase().contains(this.state.query.toLowerCase())

您正在 Obj not 和数组上调用数组方法

您需要检查对象的确切属性。包含仅适用于字符串或简单数组,不适用于 abject 数组。应该尝试像对象.searchingProperty.Constains(searchingText(;

相关内容

  • 没有找到相关文章

最新更新