React native按顺序呈现listview

时间:2016-03-06 03:43:34

标签: react-native

我使用以下方式呈现列表视图:

  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)上的值对其进行排序。通过在线查看和通过文档,我似乎无法找到方法。有什么建议吗?

1 个答案:

答案 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
});