首页 > 解决方案 > 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>

);

德克萨斯!

标签: javascriptreactjsfilter

解决方案


您需要将侦听器附加到Select例如

<Select onChange={(event) => this.setState({filterValue: event.target.value})}

然后你可以过滤结果

props.results.filter((item) => item.rating >= this.state.filterValue)
             .map(...)

推荐阅读