Javascript 反应应用程序。Can';t对尚未安装的组件调用setState

Javascript 反应应用程序。Can';t对尚未安装的组件调用setState,javascript,reactjs,Javascript,Reactjs,当我尝试更改输入字段上的值时,收到以下警告 无法对尚未安装的组件调用setState。这是一个no-op,但它可能表示应用程序中存在错误。相反,直接分配给this.state,或者定义一个state={}类属性 我无法理解为什么会发生这种情况,这在我的任何其他页面上都没有发生 唯一的区别是,这是登录页面,因此有自己的页面路由 有人能帮忙吗?我已经将我的组件剥离到最底层,看看是否有人能发现我做错了什么 import React, { Component } from 'react'; class

当我尝试更改输入字段上的值时,收到以下警告

无法对尚未安装的组件调用setState。这是一个no-op,但它可能表示应用程序中存在错误。相反,直接分配给
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;
import React,{Component}来自'React';
类登录扩展组件{
建造师(道具){
超级(道具);
此.state={
用户名:“”
};
this.onChange=this.onChange.bind(this);
}
onChange(e){
this.setState({[e.target.name]:e.target.value});
}
render(){
const{username}=this.state;
返回(
);
}
}
导出默认登录;

问题不是因为我的组件,而是因为我更改了我的网页配置以支持async await es7功能。到下面的

“预设”:[“es2017”、“第0阶段”、“反应”]

相反,我实际上需要做下一个答案并安装

npm install --save-dev regenerator-runtime


从上面的链接中进行回答修复了我的问题。

您发布的代码似乎不会导致问题,当我按原样装载此组件时,我不会收到任何警告。你能发布引起警告的整个组件吗?我在应用程序中只使用了上面的代码,它仍然抛出错误。。这就是为什么我感到困惑的原因,因为我有很多其他类似的组件,它们都工作得很好。唯一的区别是我直接将其加载到视图中,而不是将其加载到另一个组件中。您可以发布您收到的警告吗?我收到的警告就是上面黄色框中发布的警告如果这正是您正在使用的组件,那么问题不在该组件中。