Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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表单库,但希望切换到使用控制器API的自定义组件 我的自定义输入组件更新React状态时遇到问题,但没有更新表单状态中的ref。因此,必填字段始终标记为无效,我无法提交表单 以下是我的问题的演示: 它应该在提交时注销表单数据-但由于表单无效,提交从未发生。我想我已经缩小了您的问题范围。首先,我从控制器中删除了rules={{required:true}},并尝试了该表单。它告诉我firstName:undefined。然后我注释掉了onChange属

我一直在使用带有本机元素的react-hook表单库,但希望切换到使用控制器API的自定义组件

我的自定义输入组件更新React状态时遇到问题,但没有更新表单状态中的ref。因此,必填字段始终标记为无效,我无法提交表单

以下是我的问题的演示:


它应该在提交时注销表单数据-但由于表单无效,提交从未发生。

我想我已经缩小了您的问题范围。首先,我从控制器中删除了
rules={{required:true}}
,并尝试了该表单。它告诉我
firstName:undefined
。然后我注释掉了
onChange
属性。在那之后,表单工作正常。如果要提供自定义值提取器,似乎应该使用
onChange
。该值需要从函数返回。一个简单输入的例子是:
onChange={([{target}])=>target.value}
。此外,需要注意的是,
handleSubmit
使用值提取一些内部状态,就像您不需要自己跟踪这些状态一样

此更新的组件似乎正在工作:

函数应用程序(){
const{control,handleSubmit,errors}=useForm();
//const[data,setData]=useState({firstName:});
const onSubmit=data=>console.log(数据);
//const onChangeHandler=e=>{
//常量{name,value}=e.target;
//const_data={…data};
//_数据[名称]=值;
//setData(_数据);
// };
返回(
{/*{JSON.stringify(数据)}

*/} onChangeHandler(e)} /> ); }

顺便说一句,我从来没有在这个图书馆工作过,所以请尽可能相信我

您可能需要进一步澄清您对库中的
react钩子的意思(我猜您是指
useState
[和其他默认钩子])以及您对使用控制器API的
自定义组件的意思(我猜现在您指的是框架
react钩子表单
)是的,我写了“react hook form library”,我猜你读的是“form as'from.”:)哦,太多了,我的错,对不起。哦,好的,所以从onChange返回的任何内容都将用于设置表单字段值-因为在此之前,我的onChangeHandler只更新了我的react状态,没有任何返回来解释一切!非常感谢!!