1

我有从Firebase数据库中提取的项目列表,我需要在我的反应本机应用中按照字母顺序排序/排序它们。因此,这里是我使用的代码:从Rebase本地列表中对Firebase数据库中的项目进行排序/订购查看

listenForItems(itemsRef) { 
     itemsRef.on('value', (snap) => { 

      let items = []; 
      snap.forEach((child) => { 
       items.push({ 
        name: child.val().name, 
        _key  : child.key 
       }); 
      }); 

      this.setState({ 
       dataSource: this.state.dataSource.cloneWithRows(items) 
      }); 

     }); 
    } 


render() { 
     return (
       <ListView 
        automaticallyAdjustContentInsets={true} 
        dataSource={this.state.dataSource} 
        renderRow={this._renderItem.bind(this.props)} 
        enableEmptySections={true}/> 
     ); 
    } 

我发现这个http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#methods-query但我真的不知道如何使用数据源的排序方法。任何帮助?我也打开任何其他解决方案来排序反应本地列表视图中的项目。

回答

1

只需使用Array.prototype.sort对列表进行排序,然后再将其应用到数据集中。现在我已经删除了RN代码,因为它破坏了代码段。

let items = [{ 
 
    name: 'Z' 
 
}, { 
 
    name: 'A' 
 
}, { 
 
    name: 'Y' 
 
}]; 
 

 
let sorted = items.sort((a, b) => { 
 
    if (a.name < b.name) { 
 
    return -1; 
 
    } 
 
    if (a.name > b.name) { 
 
    return 1; 
 
    } 
 
    return 0; 
 
}); 
 

 
console.log(sorted)

+0

谢谢你..但我不认为这是适用于我的情况:我有一个大量的,我不从火力地堡数据库,让他们知道之前的数据.. 。实际上,我的案例中的项目正在使用应用程序从数据库动态收取费用 – user3521011

相关问题