阵营简单CheckBox组件 - 警告:的setState(...):只能更新一安装或安装组件
问题描述:
我有一个简单的CheckBox组件:阵营简单CheckBox组件 - 警告:的setState(...):只能更新一安装或安装组件
import React, { Component } from 'react';
class Checkbox extends Component {
constructor(props) {
super(props);
this.state = { isChecked: false };
this.handleCheckboxChange = this.handleCheckboxChange.bind(this);
}
render() {
return (
<div className="checkbox">
<input type="checkbox" checked={this.state.isChecked} onChange={this.handleCheckboxChange} />
Checkbox
</div>
);
}
handleCheckboxChange(e) {
this.setState({ isChecked: e.target.checked });
}
}
export default Checkbox;
然而,切换复选框产生以下错误:
Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the Checkbox component.
我在创建受控组件时错过了什么吗?
答
想通了,这是react-hot-loader
的问题。显然保存this
的值在react-hot-loader
的构造函数中不起作用。修复方法是在babelrc中手动启用transform-es2015-classes
插件。之前我曾经遇到过这个问题,但是它已经消失了,所以我认为它已经修复了,但它会随机弹出。
答
当您在渲染之外移动handlecheckbox方法(在构造函数和渲染之间)时会发生什么?
你有一个小提琴吗?您的复选框组件代码看起来没问题。这可能与其他控件有关。 – hazardous
是啊,看起来很好,我也很好https://codepen.io/anon/pen/qXJvwm所以你问题是在某个地方的上游链 – varren