Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何设置正确的';这';在ES6/React中使用承诺时的词汇范围_Javascript_Reactjs_Ecmascript 6_Es6 Promise - Fatal编程技术网

Javascript 如何设置正确的';这';在ES6/React中使用承诺时的词汇范围

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 API在我的React应用程序中返回位置信息。为此,我使用了以下有用的软件包:

此包使用承诺进行API调用。我的代码如下调用包。API调用工作得很好,我可以记录响应-但是当我尝试设置状态时,它返回this.setState不是一个函数。我对ES6 Arrow函数非常陌生,但我尝试重写promise调用以使用新语法,因为我认为使用Arrow函数会自动将其上下文绑定到父作用域。然而,这并没有解决问题。我做错了什么?感谢您的帮助

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();
}