观察()后设置状态

时间:2015-06-29 08:19:57

标签: javascript parse-platform reactjs

根据从observe()收到的数据设置状态的最佳方法是什么?

似乎通过componentWillMount()设置状态不会在此之后运行observe()并且数据无法设置状态。

我在使用Parse

时使用了建议的观察功能

E.g:

var DragApp = React.createClass({
  getInitialState: function () {
    return {
      activeCollection : ''
    };
  },

 observe: function() {
    return {
      collections: (collectionsQuery.equalTo("createdBy", currentUser))
    };
  },

  _setactiveCollection: function(collection) {
    this.setState({
      activeCollection : collection
    });
  },

  componentWillMount: function () {
    var collection = this.data.collections[0];
    this._setActiveCollection(collection);
  },

)}

2 个答案:

答案 0 :(得分:1)

我对此采取了错误的方式。

我不应该将此数据存储到州。我可以通过渲染将它传递给组件。

为了在渲染之前使this.data没有准备就绪,我在render中使用了ParseReact函数pendingQueries()。 E.g。

if (this.pendingQueries().length > 0) {
    content = 'loading...'
} else {
    content = 'hello world I am' + this.data.name
}

答案 1 :(得分:0)

尝试:

var DragApp = React.createClass({

    observe: function() {
        var collections = collectionsQuery.equalTo("createdBy", currentUser);
        return {
          collections: collections,
          activeCollection: collections[0]
        };
    },

    render: function () {
        // do something with this.data.collections and/or this.data.activeCollection
    },

)}