在单元测试(玩笑)中尝试更改setstate输入值时收到此警告
警告:无法在尚未安装的组件上调用setState。这是一项禁止操作的操作,但可能表明您的应用程序中存在错误。而是直接分配给this.state
或在Login组件中定义具有所需状态的state = {};
类属性。
我的代码是:
this.onChangeEvent = this.onChangeEvent.bind(this);
this.state = { email: '' }
componentDidMount() { this.onChangeEvent(); }
componentWillUnmount() { }
onChangeEvent(event) {
this.setState({ email: e.target.value });
}
我找不到此警告的正确解决方案。有人可以帮助我解决此警告吗?
答案 0 :(得分:2)
上下文绑定和状态初始化必须在$("#container").addClass("sidebar-close");
内部完成。
constructor
答案 1 :(得分:0)
尝试一下
class App extends Component {
constructor(props) {
super(props);
this.state = {
email: ""
}
}
onChangeEvent(event) {
this.setState({
email: event.target.value
});
}
render() {
const {
email
} = this.state;
return ( <div className = "App">
<input type = "text"
onChange = { this.onChangeEvent.bind(this)}
value = {email}/>
</div>
);
}
}