checked={false}将类型为checkbox的受控输入更改为非受控输入



以下代码返回错误:组件正在将类型为checkbox的受控输入更改为不受控制。

function CheckBox(props) {
const id = props.id;
const onChange = props.onChange;
const flag = props.flag;
const lock = props.lock;
if (lock === true) {
return (
<React.Fragment>
<input className="tgl tgl-skewed" id={id} type="checkbox" onChange={onChange} />
<label className="tgl-btn" data-tg-off={flag + " is OFF"} data-tg-on={flag + " is ON"} htmlFor={id}></label>
</React.Fragment>
)
} else {
return (
<React.Fragment>
<input className="tgl tgl-skewed" id={id} type="checkbox" disabled="disabled" checked={false} value={false}/>
<label className="tgl-btn" data-tg-off={flag + " is OFF"} htmlFor={id}></label>
</React.Fragment>
)
}
}

当我删除checked={false}时,错误消失,但我需要它…

有什么解决方案吗?

如果有onChange,则不能有固定值。通常onChange会更新一个状态,该状态将用作value

onChange意味着您自己管理值,因此状态(或道具(值应为

最新更新