2017-07-08 56 views
1

我声明以下列方式在reactjs使用mobxMobx可观测阵

@observable cacheditems 

constructor() { 
    this.cacheditems = [] 

现在我检索从袋数据库中的数据时,离线如下一个观察的数组:

var items = [] 
db.allDocs({include_docs: true}, function(err, docs) { 
       docs.rows.map((obj, id) => { 
        items.push(obj.doc) 
       }) 
      }) 


this.cacheditems = items 

但数据未设置。当我尝试获取数据以渲染其空数组时。

回答

2

当您执行this.cacheditems = items时,您正在覆盖对observable数组的引用。您可以使用replace代替:

class Store { 
    @observable cacheditems = [] 

    constructor() { 
    db.allDocs({include_docs: true}, (err, docs) => { 
     var items = [] 
     docs.rows.map((obj, id) => { 
     items.push(obj.doc) 
     }) 
     this.cacheditems.replace(items) 
    }) 
    } 
}