【问题标题】:Sort / order items from Firebase database in React native listView在 React 本机 listView 中对 Firebase 数据库中的项目进行排序/排序
【发布时间】:2017-10-23 08:25:45
【问题描述】:

我有一个从 Firebase 数据库中提取的项目列表,我需要在我的 react 本机应用程序中按字母顺序对它们进行排序/排序。所以这是我正在使用的代码:

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,但我真的不知道如何使用数据源的排序方法。有什么帮助吗?我也愿意接受任何其他解决方案来对 react native listview 中的项目进行排序。

【问题讨论】:

    标签: listview firebase react-native firebase-realtime-database datasource


    【解决方案1】:

    在将列表应用到数据集之前,只需使用 Array.prototype.sort 对列表进行排序。我暂时删除了 RN 代码,因为它破坏了 sn-p。

    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)

    【讨论】:

    • 谢谢 .. 但我认为它不适用于我的情况:我有大量数据在从 Firebase 数据库中获取它们之前我不知道......实际上项目在我的案例在使用应用程序时从数据库中动态收费
    猜你喜欢
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    相关资源
    最近更新 更多