我在这里有问题。我有一个React API,我想创建一个选择框以按特定属性过滤数据。
constructor() {
super();
this.state = {
results: []
};
}
我收到带有名称和等级的物品清单。我想用选择过滤。如果我只想查看评级为5或更高的项目,请选择5。
return (
<div className="container clearfix">
{/* value={props.search} */}
<select>
<option value="" />
<option value="10">10</option>
<option value="9">9</option>
<option value="8">8</option>
</select>
<div>
{props.results
.map(item=> (
<div key={item.id} className="item-holder">
<img src={`${imagePath}${item.image}`} />
<span className="votes">{item.rating}</span>
<p>{item.title}</p>
</div>
))}
</div>
</div>
);
TX!
答案 0 :(得分:2)
您需要将监听器附加到Select
,例如
<Select onChange={(event) => this.setState({filterValue: event.target.value})}
然后您可以使用过滤结果
props.results.filter((item) => item.rating >= this.state.filterValue)
.map(...)