Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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 如果表单有事件,如何在React中每10秒提交一次表单?_Javascript_Reactjs_Babeljs_Use Effect - Fatal编程技术网

Javascript 如果表单有事件,如何在React中每10秒提交一次表单?

Javascript 如果表单有事件,如何在React中每10秒提交一次表单?,javascript,reactjs,babeljs,use-effect,Javascript,Reactjs,Babeljs,Use Effect,因此,基本上我有一些输入字段,我从表单提交中收集数据,但我必须单击按钮或按enter键提交表单。我想要的是每10秒提交一次表单,所以我尝试在useEffect中创建一个间隔,但它给了我一个错误,因为没有定义e,是的,我已经向函数传递了一个事件 const handleDataChange=useCallback((e)=>{ e、 预防默认值(); setUserData({ [“作业”]:e.target.elements.job.value?e.target.elements.job.va

因此,基本上我有一些输入字段,我从表单提交中收集数据,但我必须单击按钮或按enter键提交表单。我想要的是每10秒提交一次表单,所以我尝试在useEffect中创建一个间隔,但它给了我一个错误,因为没有定义e,是的,我已经向函数传递了一个事件

const handleDataChange=useCallback((e)=>{
e、 预防默认值();
setUserData({
[“作业”]:e.target.elements.job.value?e.target.elements.job.value:“”,
[“fName”]:e.target.elements.fName.value?e.target.elements.fName.value:“”,
[“lName”]:e.target.elements.lName.value?e.target.elements.lName.value:“”,
[“email”]:e.target.elements.email.value?e.target.elements.email.value:“”,
[“phone”]:e.target.elements.phone.value?e.target.elements.phone.value:“”,
[“国家]:e.target.elements.country.value?e.target.elements.country.value:“”,
[“城市]:e.target.elements.city.value?e.target.elements.city.value:“”,
[“pcode”]:e.target.elements.pcode.value?e.target.elements.pcode.value:“”,
[“birth”]:e.target.elements.birth.value?e.target.elements.birth.value:“”,
[“摘要”]:摘要?摘要:“”,
消防工作,
消防教育,
fireLinks,
fireSkills,
火焰语言
})
})
useffect(()=>{
常量间隔=设置间隔(()=>{
handleDataChange()
}, 5000);
return()=>clearInterval(interval);
},[handleDataChange]);
handleDataChange(e)}>
个人资料
上传

函数的名称令人困惑,因为它是在提交时触发的,而不是在更改时触发的。 所以你只需要每10秒提交一次表格

const interval = setInterval(() => {
  formRef.current.submit();
}, 5000);

然后,事件变量将触发
handleDataChange
。(但我仍然认为有必要将其名称更改为
handleDataSubmit

因此我找到了一种方法,创建了一个提交按钮并显示:无,然后从useEffect函数创建了一个间隔,每隔10秒单击该按钮。 代码如下:

useffect(()=>{
常量间隔=设置间隔(()=>{
const formSubmitButton=document.querySelector(“.saveInfoForm”);
formSubmitButton.click();
}, 10000);
return()=>clearInterval(interval);

},[])
从setinterval函数调用时会发生这种情况,因为您没有将任何参数传递给handleDataChange函数OK,那么我如何将事件传递到setinterval函数中?您能详细解释一下吗?比如我应该如何使用ref?我对Ref一无所知,Ref是react中访问元素的方法。(而不是
document.querySelector
)。您可以阅读以下文档: