首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用reactfire加载大数据

用reactfire加载大数据
EN

Stack Overflow用户
提问于 2016-03-28 18:47:49
回答 1查看 481关注 0票数 0

我使用REACTFIRE加载大量数据(超过1500个类别)。这就是我如何将数据绑定为数组的方式:

代码语言:javascript
复制
var ContentTable=React.createClass({
mixins: [ReactFireMixin],

getInitialState: function(){

    return{firebaseRefArray:[]};
},

componentWillMount: function() {

    //reference to firebase 
    var firebaseRef=firebaseAuthUtils.getRef();
    this.bindAsArray(firebaseRef.child("Categories"),"firebaseRefArray"); 

}, 
render:function(){

    return (<Table>
                    <thead>
                        <tr>
                            <th>ID</th><th>Name</th>
                        </tr>
                    </thead>
                    <tbody>            
                    {this.state.firebaseRefArray.map(function(firebaseRef){
                        return (<tr> 
                                    <td> {firebaseRef[".key"]}</td> 
                                    <td> {firebaseRef.name}</td> 
                               </tr>
                               )
                    }.bind(this))}
                </tbody>
                </Table>);    
}

});

不幸的是,这需要大量的时间,有时我的应用程序会崩溃,我想知道是否有更好的方法(不分页)。当我使用时,我使用了“子添加”事件来追加数据,并在合理的时间内加载数据。我能用REACTFIRE做一些类似的事情吗?

编辑:,所以它似乎没有增量地添加数据,而是一次又一次地添加数据,直到加载了所有的数据。有办法解决这个问题吗?

我尝试过如下所示的shouldComponentUpdate,但它根本不呈现。通过日志记录,我知道数组在不断增长,但是比较没有显示它们在任何两次中都是不同的。这就好像prevstat.firebaseRefArray和当前的state.firebaseRefArray正在以相同的速度增长,所以条件总是错误的。

代码语言:javascript
复制
shouldComponentUpdate:function(prevProps,prevState){
   return (this.state.firebaseRefArray!==prevState.firebaseRefArray)

},

我也尝试了条件this.state!==prevState,这太慢了,呈现超过1500次(到目前为止)。有谁有什么建议吗?似乎奇怪的是,这种反应没有办法处理这么多的数据。也许我漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-03-28 20:30:08

尝试使用简单的REST请求读取数据,以JSON的形式获取数据,然后将其加载到数组中。这应该更快,但不会提供双向绑定。请参阅REST API文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36268927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档