ReactJS:从API排序选项选择

时间:2018-10-31 13:18:22

标签: javascript reactjs

我有一个选择,它从api获取选项,看起来像这样:

enter image description here

我想按升序对它们进行排序,但是我不知道该怎么做,这是我的代码

<select className="form-control form-control-sm" name="subscriptions" onChange={this.changeValues}>
    {
    this.state.variantsData.subscription_plans.map((item, i) => <option key={i} value={item.uuid}>{item.name}</option>)
    }
</select>

1 个答案:

答案 0 :(得分:2)

您可以编写一个对数据进行排序的函数,然后可以将其呈现。要进一步优化它,您可以memoize使用此功能

sortData = (array) => {
   return array.sort(function(a, b) {
       a.match(/(\d+) months/i)[1] - b.match(/(\d+) months/i)[1]
   })
}

render() {
   const data = this.sortData(this.state.variantsData.subscription_plan);
   return (
       <select className="form-control form-control-sm" name="subscriptions" onChange={this.changeValues}>
          {this.state.variantsData.subscription_plans.map((item, i) => (
              <option key={i} value={item.uuid}>{item.name}</option>
          ))
          }
       </select>
   ) 
}