that.setState不是一个函数,在一个独立的函数

时间:2016-06-01 07:57:26

标签: javascript reactjs ecmascript-6

我收到错误

  

that.setState不是函数

我看到了问题 React this.setState is not a function

我仍然无法让它发挥作用。

但我的是一个独立的职能。我也存储上下文并使用它:

componentDidMount(){
    that=this;
}

然后

updateResult(item){
    result.push(item);
    that.setState({result: result});
}

我也在构造函数

中绑定它
this.updateResult = this.updateResult.bind(this);       
this.resetResult = this.resetResult.bind(this);

我也尝试过一个功能

onUpdate(item, ()=>{
    itemList.push(item);
    that.setState({itemList: itemList});
}.bind(this));

但是提供UnexpectedToken Error!

我这样传递它

 <Buttons onUpdate={this.onUpdate} /> 

然后从那里调用该函数,但我正在使用&#39;那个&#39; for setState。

这是我的第一个申请,如果有非常明显的错误,对不起!

1 个答案:

答案 0 :(得分:0)

当你这样写的时候

<Buttons onUpdate={this.onUpdate} /> 

onUpdate函数与窗口绑定,这就是未定义setState的原因。

你可以这样做

<Buttons onUpdate={this.onUpdate.bind(this)} /> 

或像那样声明onUpdate

updateResult = item => {...}

此箭头功能将与此(您的班级)绑定