最近项目遇到了个奇怪的问题,代码如下
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...。