如何解决防止reactjs中关于axios错误的默认事件
如果axios.post出错,我想防止在反应中打开链接。
我使用了event.preventDefault
,但是它并没有阻止单击按钮打开链接。
这是代码
<Link
to={{
pathname: '/',data: "success",}}
>
<div>
<Button
onClick={this.onSubmit}
variant="contained"
color="secondary"
>
Post
</Button>
</div>
</Link>
onSubmit=(ev)=>{
let data = {
title: this.state.title,content: this.state.content,username: this.state.data.xusername,date: new Date().toUTCString(),};
Axios.post("http://localhost:9000/posts",data)
.then((response) => {
console.log(response);
})
.catch((error) => {
ev.preventDefault();
console.log(error);
});
}
解决方法
在链接中嵌套按钮是您的问题。这意味着,当您单击按钮时,这是按钮事件,您可以阻止默认设置。
如果您希望在axios呼叫完成后重定向到另一个页面,则可以使用以下方法:
<Button
onClick={this.onSubmit}
variant="contained"
color="secondary"
>
Post
</Button>
onSubmit=(ev)=>{
let data = {
title: this.state.title,content: this.state.content,username: this.state.data.xusername,date: new Date().toUTCString(),};
Axios.post("http://localhost:9000/posts",data)
.then((response) => {
console.log(response);
window.location.replace("/yourpage?var1=value"); // Redirect with vanilla js.
this.props.history.push('/yourpage?var1=value&var2=value'); // Redirect with reactjs.
})
.catch((error) => {
console.log(error); // On error,user will experience no change.
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。