2016-03-01 18 views
0

我在StackOverflow上搜索了這個問題的StackOverflow,但還沒有找到答案,所以請耐心等待,如果它已被回答。ES6 ReactJS類和這個範圍從回調

我在ES6中定義了一個類(使用ReactJS,雖然這與問題有些不相干),如下所示。我想從我的獲取回調中修改this.size和this._cache,但似乎我不能直接操作「this」,因爲它顯然是指另一個對象而不是類實例化。當定義一個綁定到該變種,它指的是對象的工作,但我覺得這是不是這樣做的ES6最好的辦法:我覺得我缺少的東西

class MyDataListStore { 

    constructor(url) { 
     this.url = url; 
     this.size = 0; 
     this._cache = []; 
     this.getRemoteData(); 
    } 

    getRemoteData() { 
     var that = this; 
     fetch(this.url).then(function(response) { 
      return response.json(); 
     }).then(function(j) { 
      that.size = j["total"]; 
      that._cache = j["table"]; 
    }); 
    } 
} 

ES6,可能有更好的方法來做到這一點。

謝謝!

+0

對不起,我其實是在在構造底部調用它,忘記現在添加行,編輯。 –

回答

0

這應做到:

getRemoteData() { 
    fetch(this.url) 
    .then((response) => response.json()) 
    .then((j) => { 
    this.size = j.total; 
    this._cache = j.table; 
    }); 
} 
+0

這對於範圍有什麼影響?在我的第一個例子中,「this」被綁定到了回調函數中,但是在這個函數中它綁定了類對象? –

+0

@Loic Duros https://github.com/lukehoban/es6features#arrows - 先閱讀本文 –