Reactjs React-这在构造函数中未定义

Reactjs React-这在构造函数中未定义,reactjs,Reactjs,我是一个新的反应和一些练习工作。在YTSearch中,当我使用它时,我会收到一条消息,表明这是未定义的。但是我现在看到的指导老师也有同样的代码,这对他很有用。有人能帮忙吗 import React, { Component } from 'react'; import ReactDOM from 'react-dom' import YTSearch from 'youtube-api-search'; const API_KEY = "AIzaSyCDclF-xo-YjMt48H8WMsne

我是一个新的反应和一些练习工作。在YTSearch中,当我使用它时,我会收到一条消息,表明这是未定义的。但是我现在看到的指导老师也有同样的代码,这对他很有用。有人能帮忙吗

import React, { Component } from 'react';
import ReactDOM from 'react-dom'
import YTSearch from 'youtube-api-search';

const API_KEY = "AIzaSyCDclF-xo-YjMt48H8WMsnebncKmU3jsQA";

class App extends Component {
    constructor(props){
        super(props);
        this.state = { 'videos' : []};
        YTSearch({ key: API_KEY, term: 'surfboards'}, function(data){
            console.log(data);
            console.log(this);
        });
    }

    render(){
        return <input />;
    }
}

ReactDOM.render(<App />, document.querySelector('.container'))
import React,{Component}来自'React';
从“react dom”导入react dom
从“youtube api搜索”导入搜索;
const API_KEY=“AIzaSyCDclF-xo-yjmt48hwmsnebnckmu3jsqa”;
类应用程序扩展组件{
建造师(道具){
超级(道具);
this.state={‘视频’:[]};
YTSearch({key:API_key,term:'surfboards'},函数(数据){
控制台日志(数据);
console.log(this);
});
}
render(){
返回;
}
}
ReactDOM.render(,document.querySelector('.container'))

这是一个上下文问题,您忘记了绑定回调方法,要使用此关键字,您需要绑定它,请使用以下方法:

   constructor(props){
        super(props);
        this.state = { 'videos' : []};
        YTSearch({ key: API_KEY, term: 'surfboards'}, function(data){
              console.log(data);
              console.log(this);
           }.bind(this)
        );
    }
       constructor(props){
            super(props);
            this.state = { 'videos' : []};
            YTSearch({ key: API_KEY, term: 'surfboards'}, (data)=>{
                  console.log(data);
                  console.log(this);
            });
        }
或者使用
箭头函数
它将为您完成这项工作,您不需要担心方法绑定,使用以下方法:

   constructor(props){
        super(props);
        this.state = { 'videos' : []};
        YTSearch({ key: API_KEY, term: 'surfboards'}, function(data){
              console.log(data);
              console.log(this);
           }.bind(this)
        );
    }
       constructor(props){
            super(props);
            this.state = { 'videos' : []};
            YTSearch({ key: API_KEY, term: 'surfboards'}, (data)=>{
                  console.log(data);
                  console.log(this);
            });
        }