Javascript 反应:未捕获类型错误:this.setState不是函数

Javascript 反应:未捕获类型错误:this.setState不是函数,javascript,reactjs,ecmascript-6,setstate,Javascript,Reactjs,Ecmascript 6,Setstate,我是一个新的反应,并编写我的第一个web应用程序。我正在尝试编写一个搜索方法,它可以查看医生列表。我得到一个“未捕获类型错误:this.setState不是函数”。我试图在函数末尾添加.bind,但仍然出现错误。我不知道如何进行。 代码如下: this.searchBox.addEventListener('keyup', function(text){ this.state = { doctors: ["Dr Smith", "Dr

我是一个新的反应,并编写我的第一个web应用程序。我正在尝试编写一个搜索方法,它可以查看医生列表。我得到一个“未捕获类型错误:this.setState不是函数”。我试图在函数末尾添加.bind,但仍然出现错误。我不知道如何进行。 代码如下:

       this.searchBox.addEventListener('keyup', function(text){    
       this.state = {
            doctors: ["Dr Smith", "Dr Jones", "Dr Mary"],
            //list of matched doctors
            matchedDoctors: []
        }
        document.getElementById("demo").innerHTML = "hello world"; 
        var list = [];
        //console.log(this.state.doctors);
        for(var i = 0; i<this.state.doctors.length; i++){
            if(this.state.doctors[i].toLowerCase().includes(text.toString().toLowerCase())){
                list.push(
                    this.state.doctors[i]
                )
            }
        }
        this.setState({matchedDoctors:list});
  }
  );
this.searchBox.addEventListener('keyup',函数(文本){
此.state={
医生:[“史密斯医生”、“琼斯医生”、“玛丽医生”],
//配对医生名单
匹配的医生:[]
}
document.getElementById(“demo”).innerHTML=“hello world”;
var列表=[];
//console.log(this.state.documents);

对于(var i=0;iPost full component,请
console.log(this)
,您应该知道为什么?您通常不应该将
addEventListener
与react一起使用。我猜
在这种情况下,this
是搜索框元素。此外,
this.state
应该在构造函数中定义。