Javascript 反应等待多恩森';使用onSubmit而不是onClick时不要等待

Javascript 反应等待多恩森';使用onSubmit而不是onClick时不要等待,javascript,html,reactjs,react-bootstrap,Javascript,Html,Reactjs,React Bootstrap,在我的登录页面中,除了单击“登录”按钮外,我还想让ENTER键按下,因此我将按钮设置为“提交”类型,并将表单设置为“onSubmit”方法,如下所示: <Button onClick={(event) => this.handleLogin(event)}>{loginTextElement}</Button> 不再等待设置const signedIn,而是继续执行代码,这会导致一些非常奇怪的行为,用户无法登录。在中,handleLogin需要防止表单提交时的默认

在我的登录页面中,除了单击“登录”按钮外,我还想让ENTER键按下,因此我将按钮设置为“提交”类型,并将表单设置为“onSubmit”方法,如下所示:

<Button onClick={(event) => this.handleLogin(event)}>{loginTextElement}</Button>

不再等待设置const signedIn,而是继续执行代码,这会导致一些非常奇怪的行为,用户无法登录。

中,handleLogin
需要防止表单提交时的默认行为,即发布数据。在
handleLogin
中尝试此操作:

event.preventDefault();

不确定它是否能解决问题,但您可以尝试在
handleLogin
中执行
event.preventDefault()
?表单提交活动可能正在做一些有趣的事情谢谢你的回复!这起作用了。
<form onSubmit={(event) => this.handleLogin(event)}>
const signedIn = await API.authenticate(this.state.email, this.state.password);

alert("this is displayed immidiately with onSubmit, but with onClick it waits until signedIn is set")

if(signedIn==API.constants.ADMIN || signedIn==API.constants.CUSTOMER){
    console.log("signedin was admin or customer")
    this.setState({signedIn: signedIn})
}else{
    this.setState({loginPressed:false, showError:true})
}
event.preventDefault();