Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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表单在“提交”按钮上重新呈现_Javascript_Reactjs - Fatal编程技术网

Javascript 在提交表单结果之前,React表单在“提交”按钮上重新呈现

Javascript 在提交表单结果之前,React表单在“提交”按钮上重新呈现,javascript,reactjs,Javascript,Reactjs,在我的React应用程序中,父组件中有一个表单,该表单根据我拥有的值从多个页面(子组件)呈现表单页面。(例如:如果值为1,则显示父注册页;如果值为2,则显示子注册页等) 单击此提交按钮,表单通过renderNewPage() 问题是在表单的末尾,当我单击submit按钮时,onClick首先在表单的onSubmit属性之前被触发。因此,在将表单信息打印到控制台之前,表单将转到新页面 我对这一点的理解是,onClick={this.renderNewPage}在onSubmit={this.han

在我的React应用程序中,父组件中有一个表单,该表单根据我拥有的值从多个页面(子组件)呈现表单页面。(例如:如果值为1,则显示父注册页;如果值为2,则显示子注册页等)

单击此提交按钮,表单通过
renderNewPage()

问题是在表单的末尾,当我单击submit按钮时,onClick首先在表单的onSubmit属性之前被触发。因此,在将表单信息打印到控制台之前,表单将转到新页面

我对这一点的理解是,
onClick={this.renderNewPage}
onSubmit={this.handleSubmit}
之前被调用。有没有一种方法可以让
renderNewPage()
暂停(或延迟)直到
handleSubmit()
完成


我的react应用程序有好几行,所以我只发布和这个问题相关的重要部分(我想)。如果上面的代码没有包含足够的信息,请让我知道,我将尝试提供更多信息。

是,单击首先触发;您可以在setTimeout中包装renderNewPage的内容

renderNewPage = () => {
 setTimeout(()=>{
  //your code
 },0)
}

根据这两个函数的作用,控制台日志可能是一个简短的闪光。

handleSubmit
的末尾添加
renderNewPage
上发生的任何事情?这正是我想要的。谢谢
handleSubmit = e =>{
    const {ParentName, ChildName, ..., Country} = this.state;
    //checking before sending to backend
    console.log(ParentName);
    console.log(ChildName);
    ....
}
renderNewPage = () => {
 setTimeout(()=>{
  //your code
 },0)
}