微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

防止reactjs中关于axios错误的默认事件

如何解决防止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 举报,一经查实,本站将立刻删除。