javascript - 无法读取ReactJS中未定义的属性 'enqueueSetState'

标签 javascript reactjs

我不太清楚为什么会收到此错误。

class ContentProcessing extends Component {

    constructor(props) {
        super(props);

        this.state = {content: currentData};
        this.setData = this.setData.bind(this);
    }

    setData(data) {
        this.setState({
            content: data
        });
    }

    render() {
        return (
                <div>
                    <Card title={this.state.content} />
                </div>
        );
    }
}

错误报告于

    this.setState({
        content: data
    });

基本上,我从另一个类中的按钮启动 setData,一旦单击它,我的分页就会中断并收到错误。

我检查了一下,看起来在 setData() 中,this.state 未定义,所以我想这可能就是问题所在。

我查看了其他一些也有同样问题的答案,但他们的修复似乎对我不起作用。

最佳答案

这个错误是因为 this.setState 没有绑定(bind)到主类中的 this 。如果你想将 setState 传递到其他地方,你需要先在它的主类中绑定(bind)它:

class ContentProcessing extends Component {

constructor(props) {
    super(props);

    this.state = {content: currentData};
    this.setData = this.setData.bind(this);
    this.setState = this.setState.bind(this); // <- try by adding this line
}}

关于javascript - 无法读取ReactJS中未定义的属性 'enqueueSetState',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49591998/

相关文章:

javascript - 带 anchor 的位置 href 不起作用

javascript - Handlebars 未接收物体

javascript - 无法将数据添加到 mongoDB

javascript - 如何在不通过服务器传递文件的情况下将文件上传到 amazon S3?

reactjs - 在 React Hooks useEffect 清理失败中取消 Axios REST 调用

javascript - 如何在 window.open() 中应用窗口的 css

javascript - ReactJS:更新受控输入字段问题

javascript - window.location.reload 在 Chrome 中工作正常,但在 Firefox 中不起作用

reactjs - React Proptypes - 无状态组件

javascript - 如何在 react 中的不同组件库之间共享上下文?