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
Javascript 为什么拆卸元件后所需的检查不起作用?_Javascript_Reactjs_React Hooks_React Hook Form - Fatal编程技术网

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:组件正在更改不受控制的使用自动完成控制。
每当我选择它时,都会显示此错误,我已经定义了
初始状态
或默认状态