2015-09-25 49 views
0

我試圖使用React製作一個簡單的評論系統。我將這些評論保存在Parse中。問題是,當我從Parse中檢索評論時,我需要更新組件的狀態,但是當我嘗試這樣做時,出現錯誤"Uncaught ReferenceError: this.setState is not defined"從不同的範圍訪問「this」

不工作密碼

loadComments() { 
    let Comment = Parse.Object.extend("Comment"); 
    let query = new Parse.Query(Comment); 
    query.limit(15).find({ 
     success: function(result) { 
     let data = []; 
     for (var i = 0; i < result.length; i++) { 
      var object = result[i]; 
      data.push(object.toJSON()); 
     } 
     this.setState({ data: data }); 
     } 
    }); 
} 

如果我改變我的代碼它的工作原理,但我認爲應該有這更好的辦法。

工作代碼

loadComments() { 
    let Comment = Parse.Object.extend("Comment"); 
    let query = new Parse.Query(Comment); 
    let _this = this; 
    query.limit(15).find({ 
     success: function(result) { 
      let data = []; 
      for (var i = 0; i < result.length; i++) { 
      var object = result[i]; 
      data.push(object.toJSON()); 
      } 
      _this.setState({ data: data }); 
     } 
    }); 
} 
+0

您的工作版本是解決此問題的常規方式。見http://stackoverflow.com/questions/24539521/javascript-owner-of-this/24539572#24539572 – Barmar

回答