javascript - ReactJS:从 API 中排序选项选择

标签 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>

最佳答案

您可以编写一个函数来对数据进行排序,然后可以渲染该数据。要进一步优化它,您可以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>
   ) 
}

关于javascript - ReactJS:从 API 中排序选项选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53084318/

相关文章:

javascript - CSS 覆盖/只做一次?

reactjs - 如何使用 Material ui Accordion 的按钮折叠?

javascript - React - 从 JSON 渲染 HTML

javascript - echarts中如何显示sum stack bar

javascript - 如何在我的 React 表单提交处理程序中正确捕获和解析错误?

javascript - 如何在 javascript 中解析 UI 端的 JSON (key ,value) 字符串

javascript - 无法从 LocalStorage 获取下拉列表的值

javascript - 页面加载期间执行的 Javascript 行数

javascript - jQuery - 在变量元素内引用伪/其他类

javascript - 如何让 Service Worker 从 API 缓存数据并在需要时更新缓存