【发布时间】:2020-10-06 23:02:24
【问题描述】:
React 复选框 - Onchange 输出未定义为第一次单击(时间)。之后显示有效的真假输出。我用谷歌搜索了这个问题,但没有解决问题。
请帮忙,我在这里做错了什么。
我在State中将checked定义为false:
constructor() {
super();
this.state = {
formFields: {
checked: false,
},
};
}
处理复选框:
handleCheckBox = (e) => {
this.setState({ checked: !this.state.checked });
console.log("checked", this.state.checked);
// this.setState({ checked: !this.state.formFields.checked });
// console.log("checked", this.state.formFields.checked);
};
解构:
const { ...formFields } = this.state;
在表单中的复选框输入如下:
<input
type="checkbox"
checked={formFields.checked}
onChange={this.handleCheckBox}
/>
【问题讨论】:
-
您正在记录
this.state.checked在您的示例中。您应该退出this.state.formFields.checked。我认为这只是一个错字。所以你最初没有在你的状态下定义this.state.checked -
@DevStormUK,是的,我都检查了。如果您在代码中看到我评论了 this.state.formFields.checked。两者都给出相同的输出。谢谢
标签: javascript reactjs