反应this.setState不能与上下文API一起使用

时间:2019-01-23 12:32:34

标签: reactjs

目前,我的AppContext.js文件中包含此代码

getattr(item, dynamicField)

我正在从控制台成功调用getEntries函数及其显示消息,但是this.setState无法正常工作,它显示TypeError:this.setState不是函数

2 个答案:

答案 0 :(得分:0)

这里的问题是this未绑定到正确的上下文。

最简单的解决方法可能是使用以下语法:

getEntries = () => {
    ...
}

React中有几种方法可以将this绑定到类上下文:check this article用于其他方式。

答案 1 :(得分:0)

getEntries函数需要绑定到组件。简单的方法是使用箭头功能,如下所示。

getEntries = () => {
    console.log('FIRED');

    this.setState({test: 'HELLO'});
}

将getEnteries方法绑定到组件的第二种方法是

constructor(props) {
    super(props);
    // This binding is necessary to make `this` work in the callback
    this.getEntries = this.getEntries.bind(this);
  }