如何使用 form.submit() 防止页面重新加载以在 ReactJs 中作为方法提交

How to prevent page reload using form.submit() to submit as a method in ReactJs

如何在 ReactJS 中以编程方式防止在触发表单提交时刷新页面? 我试过这段代码:

const myForm = () =>
    <form onBlur={(e) => {
      if(!e.relatedTarget || (e.relatedTarget.form !== e.activeTarget)) 

        e.currentTarget.submit((e) => {
          e.preventDefault();// page reloads before this callback
          debugger
        });
      }
    }}
    onSubmit={(e) => {
      e.preventDefault();//// page reloads before this event
      debugger
    }}>
    ...
 </form>

我的目标是从此表单提交 onBlur 表单(当用户填写所有字段并在表单外部单击时)

我已经检查了这些解决方案,但它们不起作用:

Prevent page reload when submit

我不考虑 iframe Submit form without page reloading

使用应该使用e.currentTarget.requestSubmit() (docs). Read about differences with submit method here.

或者您可以简单地定义一个提交处理程序函数并将其提供给 onBluronSubmit 表单属性。

const handleSubmit = (ev) => {
  ev.preventDefault()
  ... 
}

return (
  <form 
    onBlur={(ev) => if (shouldSubmit(ev)) handleSubmit(ev)}
    onSubmit={handleSubmit}
  >
  ...
  </form>
)

无需诉诸本机表单提交。如果您的用例允许的话。