[英]Why is my filter function not working?
simple react component that should be filtering a list. 应该过滤列表的简单react组件。 not working and i have no idea why...
不工作,我不知道为什么...
import React from 'react';
class Filter extends React.Component {
state = {
input: '',
items: [{name: 'lol'}]
}
handleChange = (event) => this.setState({ input: event.target.value })
render(){
const { input, items } = this.state;
return(
<div>
<input
placeholder="search for an item"
onChange={this.handleChange}
/>
{items.filter(term => term.includes(input)).map((term) => (
<div>{term.name}</div>
))}
</div>
)
}
}
export default Filter;
literally filtering the array, then mapping over it.... 从字面上过滤数组,然后在其上映射...。
import React from 'react';
class Filter extends React.Component {
state = {
input: '',
items: [{name: 'lol'}],
filteredItems: false,
}
filter(e) {
var value = e.target.value;
this.setState({filterval: value})
this.setState({
filteredItems: !value
? false
: this.state.items.filter(function (item) {
return item.name.toLowerCase().indexOf(value.toLowerCase()) !== -1;
})
})
}
render(){
var list = this.state.filteredItems || this.state.items || []
return (
<div>
<input placeholder="search for an item" onChange={this.filter.bind(this)}
/>
<div>
{list.map((item,index) => (
<div>{term.name}</div>
))}
</div>
</div>
)
items.filter(term => term.includes(input))
The condition here is not correct. 这里的条件不正确。 The variable
term
is an object {name: 'lol'}
. 变量
term
是对象{name: 'lol'}
。 The includes
is not available for an object. includes
不适用于对象。 It's should be term.name.includes(input)
or term.name === input
它应该是
term.name.includes(input)
或term.name === input
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.