首页 > 解决方案 > 警告:无法在尚未安装的组件上调用 setState

问题描述

当我在单元测试时尝试更改 setstate 输入值时收到此警告(开玩笑)

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

this.onChangeEvent = this.onChangeEvent.bind(this);

this.state = { email: '' }

componentDidMount() { this.onChangeEvent(); }

componentWillUnmount() { }

onChangeEvent(event) {     
    this.setState({ email: e.target.value });     
}

我找不到此警告的正确解决方案。有人可以帮我解决这个警告吗?

标签: javascriptreactjsjestjssetstate

解决方案


上下文绑定状态初始化必须在constructor.

constructor(props) {
    super(props);
    this.onChangeEvent = this.onChangeEvent.bind(this);

    this.state = { email: '' }
}

推荐阅读