我正在尝试使用FourSquare API在我的React App中返回位置信息。要做到这一点,我正在使用这个有用的包:https://www.npmjs.com/package/foursquarevenues
此包使用promises进行API调用。我的代码调用包如下。 API调用工作得很好,我可以记录响应 - 但是当我尝试设置状态时,它返回this.setState不是一个函数。我是ES6 Arrow函数的新手,但我尝试重写promise调用以使用新语法 - 因为我认为使用Arrow Functions会自动将此上下文绑定到父作用域。然而,这还没有解决问题。我究竟做错了什么?任何帮助表示赞赏!
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);
});
答案 0 :(得分:0)
(arg1, arg2, arg3) => { this.doSomething(); }
该表示法创建一个自动从父this
继承的函数。
另一种方法是将其保存在将继承的常量中。
const self = this;
function exemple() {
self.doSomething();
}