【发布时间】:2020-05-02 12:52:37
【问题描述】:
这快把我逼疯了。我对选择下拉菜单和文本字段没有任何问题,但由于某种原因,我无法让复选框以受控方式工作。我希望他们“切换”并在父组件中收听此事件。
我知道复选框类型的输入有一个“已检查”属性。选择一个复选框会赋予它“on”的值。我将这个“on”值转换为真或假,并相应地更新组件。
由于某种原因,我无法让它工作,要么它总是被选中,要么它从未被选中(如果我切换布尔开关)。
export class ControlledCheckbox extends React.Component {
constructor(props) {
super(props);
this.state = {
select: false,
};
}
render() {
console.info("this.state.select - " + this.state.select);
let sel = false;
if (this.state.select !== "on") {
sel = true;
} else {
sel = false;
}
return (
<div>
<input
type="checkbox"
checked={sel}
onChange={this.handleChangeCheckbox}
/>
</div>
);
}
handleChangeCheckbox = (e) => {
console.info("here e.currentTarget.value " + e.currentTarget.value);
this.setState({
select: e.currentTarget.value,
});
//call passed through callback here
};
}
【问题讨论】:
标签: javascript reactjs