【发布时间】:2018-08-30 08:37:25
【问题描述】:
当我尝试更改输入字段的值时,我收到以下警告。
无法在尚未安装的组件上调用 setState。这是一个无操作,但它可能表明您的应用程序中存在错误。而是直接分配给
this.state或在登录组件中定义具有所需状态的state = {};类属性。
我不明白为什么会发生这种情况,我的任何其他反应页面都没有发生这种情况。
唯一的区别是这是登录页面,所以它有自己的页面路由。
有人可以帮忙吗?我已经将我的组件剥离到最简单的部分,看看是否有人能发现我做错了什么。
import React, { Component } from 'react';
class Login extends Component {
constructor(props) {
super(props);
this.state = {
username: ''
};
this.onChange = this.onChange.bind(this);
}
onChange(e) {
this.setState({ [e.target.name]: e.target.value });
}
render() {
const { username } = this.state;
return (
<input type="text" placeholder="Email" className="form-control" name="username" autoComplete="email" value={username} onChange={this.onChange} />
);
}
}
export default Login;
【问题讨论】:
-
看起来您发布的代码不会导致问题,当我按原样安装此组件时,我没有收到任何警告。您能否发布导致警告的整个组件?
-
我在我的应用程序中只使用了上面的确切代码,但它仍然抛出错误。这就是为什么我很困惑,因为我有很多像这样的其他组件都可以正常工作。唯一的区别是我将它直接加载到视图中,而不是将它放在另一个组件中。
-
你能发布你收到的警告吗?
-
我得到的警告只是上面黄色框中的警告
-
如果这是您正在使用的确切组件,那么问题不在此组件中。
标签: javascript reactjs