Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有模型的窗体复选框带有检查状态问题_Javascript_Reactjs_Antd - Fatal编程技术网

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>