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