ES6 ReactJS类和此范围来自回调

时间:2016-03-01 13:57:30

标签: javascript reactjs scope ecmascript-6

我在StackOverflow上搜索了StackOverflow这个问题,但尚未找到答案,所以请耐心等待,如果它已经被回答了。

我在ES6中定义了一个类(使用ReactJS,虽然这与问题有些无关),如下所示。我想从我的fetch回调中修改this.size和this._cache,但似乎我不能直接操作"这个"因为它指的是另一个对象,而不是类实例化,显然。当定义要绑定到它的var时,它确实可以引用该对象,但我觉得这不是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的一些东西,可能有更好的方法来做到这一点。

谢谢!

1 个答案:

答案 0 :(得分:0)

这应该这样做:

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