首页 文章

反应应用 . 无法在尚未装入的组件上调用setState

提问于
浏览
0

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

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

我无法理解为什么会发生这种情况,我的其他任何反应页面都没有发生这种情况 .

唯一的区别是这是登录页面,因此它有自己的页面路由 .

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

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 回答

  • 1

    问题不是因为我的组件,而是因为我更改了我的webpack配置以支持异步等待es7功能 . 以下......

    “预设”:[“es2017”,“stage-0”,“反应”]

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

    npm install --save-dev regenerator-runtime
    

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

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

相关问题