我有一个接收优惠的组件,并希望设置最高的顶部。这是代码:
var Offerslist = React.createClass({
_renderOffers: function(key) {
var details = this.props[key];
// TODO: set order of highest offer descending
return (
<li key={key} className="offer-of-item">
€ {details.price}
<a className="remove-offer" onClick={this._removeOffer}>X</a>
</li>
)
},
render : function() {
return (
<ol className="list-of-offers-per-item">
{Object.keys(this.props).map(this._renderOffers)}
</ol>
)
}
});
我想到用对象{price:123,offerid:'foo123'}填充数组,然后按价格使用.sort。但是我无法填充这样的数组,因为它从不会一次遍历所有对象。是否有一些内置的React方法可以做到这一点?
答案 0 :(得分:1)
对于普通数组,您可以使用sort
方法。但由于您的offers
是一个对象,而不是一个数组,因此您可以通过在keys
对象中查找价格来对offers
进行排序:
Object.keys(this.props)
.sort((a, b) => ( this.props[a].price - this.props[b].price ))
.map( this._renderOffers)