Javascript 如何设置正确的';这';在ES6/React中使用承诺时的词汇范围
我正在尝试使用FourSquare API在我的React应用程序中返回位置信息。为此,我使用了以下有用的软件包: 此包使用承诺进行API调用。我的代码如下调用包。API调用工作得很好,我可以记录响应-但是当我尝试设置状态时,它返回this.setState不是一个函数。我对ES6 Arrow函数非常陌生,但我尝试重写promise调用以使用新语法,因为我认为使用Arrow函数会自动将其上下文绑定到父作用域。然而,这并没有解决问题。我做错了什么?感谢您的帮助Javascript 如何设置正确的';这';在ES6/React中使用承诺时的词汇范围,javascript,reactjs,ecmascript-6,es6-promise,Javascript,Reactjs,Ecmascript 6,Es6 Promise,我正在尝试使用FourSquare API在我的React应用程序中返回位置信息。为此,我使用了以下有用的软件包: 此包使用承诺进行API调用。我的代码如下调用包。API调用工作得很好,我可以记录响应-但是当我尝试设置状态时,它返回this.setState不是一个函数。我对ES6 Arrow函数非常陌生,但我尝试重写promise调用以使用新语法,因为我认为使用Arrow函数会自动将其上下文绑定到父作用域。然而,这并没有解决问题。我做错了什么?感谢您的帮助 foursquare.venues.
foursquare.venues.getVenues(params)
.then(function(venues) {
const venueList = venues.response.venues
console.log(venueList);
this.setState({
venues: venueList // this returns this.setState is not a function
})
})
.catch(err => {
console.log(err);
});
该符号创建了一个自动从父继承此的函数
另一种方法是将其保存在将被继承的常量中
const self = this;
function exemple() {
self.doSomething();
}
.then(viouses=>{…this.setState()…})
?谢谢-我不知怎么错过了。感激
const self = this;
function exemple() {
self.doSomething();
}