React:更新状态

时间:2016-01-08 21:09:32

标签: javascript reactjs

我有一个跟踪文档状态的组件aDocuments。单击按钮时,将上载文档。每个文档对象都包含处理上载的功能。在上传过程中,文档中的模式从新模式更改为上传模式。文档对象在上载期间更新模式。每个文档都是来自aDocuments数组中对象的引用,该对象位于我的状态。

当该对象可以自行更新时,如何正确处理状态中对象的更新属性?我的setState调用什么都不做,只会导致渲染。

Doc.prototype.upload = function (uploadComplete) {
  if (this.mode === 'new') {
    this.mode = 'uploading';
    // do uploading stuff and call uploadComplete after upload is finished
    $.ajax(..., complete: function() {
      this.mode = 'done';
      uploadComplete(this); 
    });
  }
}

// in my component
clickHandler: function (doc) {

  doc.upload(function(tmpDoc) {
    // this will cause render to show the doc as done
    this.setState('aDocuments', this.state.aDocuments);
  });

  // this will show the document as uploading
  this.setState('aDocuments', this.state.aDocuments);
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

为了更新文档数组所在的顶级组件的状态,您需要通过props(修改顶级文档数组)将回调函数传递给单个文档组件。