发布于 4年前

setState warning

最近项目遇到了个奇怪的问题,代码如下

class Demo extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            value: ''
        };
    }

    handleChange = (e) => {
        this.setState({
            value: e.target.value
        });
    };

    render() {
        return (
            <input type="text" value={this.state.value} onChange={this.handleChange}/>
        );
    }
}

很简单的代码,然而却报了下面的错误。 。。。。。。。。。。。。。。。。

Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the OverviewHeader component.

google 的信息提供补了什么帮助。通过二分法逐步排查了问题,最后定位到是可能是 react-hot-loader 的问题,找到了个关键 issue https://github.com/gaearon/re...,最后作者说 : This is completely solved in React Hot Loader v4.

于是升级 react-hot-loader 即可。

-------- 分割线

之前项目没有类似问题。进一步分析得出,新项目是用了 babel-preset-env ,so...。

©2020 edoou.com   京ICP备16001874号-3