我使用以下方式呈现列表视图:
render() {
return (
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow.bind(this)}/>
);
}
和
var dataSource = new ListView.DataSource(
{rowHasChanged: (r1, r2) => r1.id !== r2.id});
this.state = {
dataSource: dataSource.cloneWithRows(this.props.deals)
};
我希望能够通过数据源(this.props.deals.distance)上的值对其进行排序。通过在线查看和通过文档,我似乎无法找到方法。有什么建议吗?
答案 0 :(得分:6)
只需对deals数组进行排序并设置dataSource即可。
let sortedDeals = this.props.deals.sort((a,b) => {
if (a.distance < b.distance) {
return -1;
}
if (a.distance > b.distance) {
return 1;
}
// a must be equal to b
return 0;
});
let dataSource = dataSource.cloneWithRows(sortedDeals)
this.setState({
dataSource: dataSource
});