【发布时间】:2017-04-28 16:49:00
【问题描述】:
我有一个相当普通的react 组件,我想在其中跟踪input 的值。组件定义如下。
import React from 'react';
class MyInput extends React.Component {
constructor(props) {
super(props);
this.state = { value: 'initial value' };
this.handleChange = this.handleChange.bind(this);
}
handleChange(event) {
this.setState({ value: event.target.value });
}
render() {
return (<input onChange={this.handleChange} />);
}
}
如果我使用 webpack 编译代码,这将完美运行,但是当我尝试使用 webpack-dev-server 进行热重载时,我会收到此错误:
(unknown) Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component.
我已经检查了安装,当这个警告被吐出但状态没有更新时,组件肯定已经安装。当你用谷歌搜索警告时出现的一切都与人们在组件卸载后调用它有关,这又不是这里发生的事情。有什么想法可以在这种情况下发生吗?
【问题讨论】:
-
在返回语句中,有一个错字 -
nChange应该是onChange- 可能与您的问题没有任何关系,但值得修正。 -
谢谢,这只是在复制和格式化时打错了。
-
重启服务器可能值得一试,因为热重载有时会停止工作
-
我遇到了同样的事情。当我禁用热替换时,一切正常。我仔细检查了
react-hot-boilerplate#next并进行了比较(我使用的是react-hot-loader@3.0.0-beta.7)并且没有发现任何错误。所以这是某个地方的问题,只是不确定在哪里。 -
@Ivanna 我遇到了同样的问题。你解决了吗?
标签: javascript reactjs webpack-dev-server setstate