Javascript 为什么拆卸元件后所需的检查不起作用?
你能告诉我为什么我要求的检查不能自动完成吗?我使用的是Javascript 为什么拆卸元件后所需的检查不起作用?,javascript,reactjs,react-hooks,react-hook-form,Javascript,Reactjs,React Hooks,React Hook Form,你能告诉我为什么我要求的检查不能自动完成吗?我使用的是物料界面和react hook表单。 复制步骤 单击Submit按钮,显示必填字段 然后从列表中选择任意元素 删除所选元素,然后再次单击“提交”按钮。它应该 显示“必需”字段检查。但它没有显示任何原因 这是我的密码 ( {option.label}({option.code})+{option.phone} )} renderInput={params=>( )} /> } onChange={([事件,数据])=>{ 返回数据; }}
物料界面
和react hook表单。
复制步骤
- 单击
按钮,显示必填字段李>Submit
- 然后从列表中选择任意元素
- 删除所选元素,然后再次单击“提交”按钮。它应该 显示“必需”字段检查。但它没有显示任何原因
(
{option.label}({option.code})+{option.phone}
)}
renderInput={params=>(
)}
/>
}
onChange={([事件,数据])=>{
返回数据;
}}
name=“国家”
control={control}
/>
初始加载表单时,表单的值为空对象-
{}
当您选择一个国家(例如“安道尔”)时,您表格的值变为:
{"country":[{"code":"AD","label":"Andorra","phone":"376"}]}
{"country":[]}
然后,当您取消选择国家/地区时,表单的值将变为:
{"country":[{"code":"AD","label":"Andorra","phone":"376"}]}
{"country":[]}
空数组在技术上符合“必需”条件(毕竟它不是null),因此您所需的处理程序不会触发
您可以通过在App
类中显示表单的值来验证是否发生了这种情况-
const { control, handleSubmit, errors, register, getValues } = useForm({});
return (
<form noValidate onSubmit={handleSubmit(data => console.log(data))}>
<Countries control={control} errors={errors} register={register} />
<Button variant="contained" color="primary" type="submit">
Submit
</Button>
<code>{JSON.stringify(getValues())}</code>
</form>
);
简单的修复方法是不将空数组作为值从控件返回-按如下方式更新onChange
处理程序-
onChange={([event, data]) => {
return data && data.length ? data : undefined;
}}
初始加载窗体时,窗体的值为空对象-
{}
当您选择一个国家(例如“安道尔”)时,您表格的值变为:
{"country":[{"code":"AD","label":"Andorra","phone":"376"}]}
{"country":[]}
然后,当您取消选择国家/地区时,表单的值将变为:
{"country":[{"code":"AD","label":"Andorra","phone":"376"}]}
{"country":[]}
空数组在技术上符合“必需”条件(毕竟它不是null),因此您所需的处理程序不会触发
您可以通过在App
类中显示表单的值来验证是否发生了这种情况-
const { control, handleSubmit, errors, register, getValues } = useForm({});
return (
<form noValidate onSubmit={handleSubmit(data => console.log(data))}>
<Countries control={control} errors={errors} register={register} />
<Button variant="contained" color="primary" type="submit">
Submit
</Button>
<code>{JSON.stringify(getValues())}</code>
</form>
);
简单的修复方法是不将空数组作为值从控件返回-按如下方式更新onChange
处理程序-
onChange={([event, data]) => {
return data && data.length ? data : undefined;
}}
感谢工作正常..但我有一个问题是cooming
材料UI:组件正在将一个不受控制的UseAutomplete更改为受控。
每当我选择它时,都会显示此错误我已经定义了初始状态
或defalut状态感谢工作正常..但我有一个问题是cooming材料UI:组件正在更改不受控制的使用自动完成控制。
每当我选择它时,都会显示此错误,我已经定义了初始状态
或默认状态