react应用程序。无法在尚未安装的组件上调用 setState

IT技术 javascript reactjs
2021-05-13 04:51:21

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

无法在尚未安装的组件上调用 setState。这是一个空操作,但它可能表明您的应用程序中存在错误。相反,在登录组件中this.state直接分配或定义state = {};具有所需状态类属性。

我不明白为什么会发生这种情况,它在我的任何其他react页面上都没有发生。

唯一的区别是这是登录页面,所以它有自己的页面路由。

任何人都可以帮忙吗?我已经将我的组件剥离回裸露的骨头,看看是否有人能发现我做错了什么。

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;
1个回答

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

"预设": [ "es2017" , "stage-0" , "react" ]

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

npm install --save-dev regenerator-runtime

https://stackoverflow.com/a/51650116/3284707

从上面的链接做答案解决了我的问题。