Javascript 带有模型的窗体复选框带有检查状态问题
我有一个表,每一列我都有一个模型和一个表单,但是当我多次单击复选框时,我得到了错误的输出 我想从表中设置默认值,但对于我缺少的复选框,您无法使用它 对于某些单击,复选框无法正常工作 从真到假,再到假Javascript 带有模型的窗体复选框带有检查状态问题,javascript,reactjs,antd,Javascript,Reactjs,Antd,我有一个表,每一列我都有一个模型和一个表单,但是当我多次单击复选框时,我得到了错误的输出 我想从表中设置默认值,但对于我缺少的复选框,您无法使用它 对于某些单击,复选框无法正常工作 从真到假,再到假 var defaultValues = { email: data.email, first: data.first, last: data.last, reserve: data.reserve == "
var defaultValues = {
email: data.email,
first: data.first,
last: data.last,
reserve: data.reserve == "true" ? true : false,
}
const [isReserve, setIsReserve] = useState( defaultValues.reserve );
useEffect(() => {
console.log("use eeff: ",defaultValues.reserve );
form.setFieldsValue(defaultValues);
}, [form, defaultValues])
const onChangeCheck = e => {
setIsReserve(e.target.checked);
console.log("clicked: ", e.target.checked);
//defaultValues.reserve = e.target.checked;
//form.setFieldsValue(defaultValues)
}
<Form.Item
name="reserve"
label="Is Reserve"
valuePropName="checked"
>
<Checkbox onChange={onChangeCheck}></Checkbox>
</Form.Item>
我认为您应该将
值
道具传递给复选框组件:
<Checkbox onChange={onChangeCheck} value={isReserve}></Checkbox>
如果不知道复选框的实现,就很难解释为什么它的行为是这样的,而其他时候则不同。它可能有很多原因,包括React的优化算法、浏览器实现以及介于两者之间的一系列因素
但是只需传递值道具,它就会按预期工作。我尝试了,但默认值不起作用:(我需要将它们添加到DefaultValue上才能工作。
<Checkbox onChange={onChangeCheck} value={isReserve}></Checkbox>