Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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
Reactjs 如果选中复选框,则禁用表单_Reactjs_Forms_Checkbox - Fatal编程技术网

Reactjs 如果选中复选框,则禁用表单

Reactjs 如果选中复选框,则禁用表单,reactjs,forms,checkbox,Reactjs,Forms,Checkbox,我有一个复选框。如果选中该复选框,则窗体应关闭。但这对我不起作用。我有以下代码: const [IsChacked, setIsChacked] = useState(false); const onChangeParams = (name, setChackedValue, defaultChecked) => { if (name === "foreign_citizen") { let value = defaultChecked.target.value;

我有一个复选框。如果选中该复选框,则窗体应关闭。但这对我不起作用。我有以下代码:

const [IsChacked, setIsChacked] = useState(false);

const onChangeParams = (name, setChackedValue, defaultChecked) => {
    if (name === "foreign_citizen") {
        let value = defaultChecked.target.value;           
        setChackedValue(name, value)
        if (parseInt(value) === 1) {
            setIsChacked(true);
        }
    }
};
我的表格是这样的:

<Form.Check
  onChange={(e => onChangeParams("foreign_citizen", e, setChackedValue))}
  name="foreign_citizen"
  defaultChecked={values.foreign_citizen}
  isInvalid={touched.foreign_citizen && !!errors.foreign_citizen}
  type="checkbox"
  label="Наличие паспорта в деле"   />



{IsChacked ? (< > Dos something here</>) : ( <></>)}
onChangeParams(“外国公民”,e,setChackedValue))}
name=“外国公民”
defaultChecked={values.foreign_citizen}
isInvalid={touch.foreign\u citizen&&!!errors.foreign\u citizen}
type=“复选框”
label=“ааачааааааааааааааааааа”/
{IsChacked?(<>在这里做点什么):()}
如果我选中复选框,它会给出类似的错误: TypeError:无法读取未定义的属性“target”

那我哪里错了?我不理解…

onChange={(e=>onChangeParams(“外国公民”,e,setChackedValue))}
这里事件对象是第二个参数

const onChangeParams = (name, setChackedValue, defaultChecked) => {
    if (name === "foreign_citizen") {
        let value = defaultChecked.target.value; 
但上面的事件对象是第三个参数

试着改变
onChange={(e=>onChangeParams(“外国公民”,setChackedValue,e,)}

此外,您还必须将表格附在一个碎片中

 return (
    <>
      <Form.Check
        onChange={(e => onChangeParams("foreign_citizen", setChackedValue, e,))}
        name="foreign_citizen"
        defaultChecked={values.foreign_citizen}
        isInvalid={touched.foreign_citizen && !!errors.foreign_citizen}
        type="checkbox"
        label="Наличие паспорта в деле"
      />
      {IsChacked ? <> Dos something here</> : <></>}
    </>
  );
返回(
onChangeParams(“外国公民”,setChackedValue,e,)}
name=“外国公民”
defaultChecked={values.foreign_citizen}
isInvalid={touch.foreign\u citizen&&!!errors.foreign\u citizen}
type=“复选框”
label=“аааааааааааааааа
/>
{IsChacked?在这里做点什么:}
);

类似的代码Sandbox-

没有解决方案,它返回TypeError:无法读取Unfinede.target.checked的属性'target',而不是e.target.valueYeah,我喜欢这样做,但没有解决。如果我检查它,仍然返回targer undefined error。请检查此-e.target.checked而不是e.target.value