如何避免嵌套AXIOS调用后自动重装?

时间:2019-06-26 18:54:36

标签: javascript vue.js axios

嗯,我有同样的问题。当我使用axios创建请愿书时,它可以正常工作,但是当我嵌套axios请愿书时,页面会自动刷新。而且我不知道是什么问题。

我正在使用evt.preventDefault()return false;,但似乎都无法使用。

当我调用此单个函数时,一切正常:

    addSport(payload) {
      const path = 'http://localhost:5000/sports';
      axios.post(path, payload)
        .then(() => {
          this.getSports();
          this.message = 'Sport Added!';
          this.showMessage = true;
          return false;
        })
        .catch((error) => {
          // eslint-disable-next-line
          console.error(error);
        });
      return false;
    }

我称之为:

      this.uploadImage(formData, this.addSports, payload);

但是,当我尝试使用此页面时,在执行两次调用后页面正在重新加载:

    uploadImage(formData, callback, payload) {
      const path = 'http://localhost:5000/upload';
      axios.post(path, formData)
        .then((response) => {
          callback({
            sport_id: payload.sport_id,
            name: payload.name,
            logo_url: response.data.logo_url,
          });
          return false;
        })
        .catch((error) => {
          // eslint-disable-next-line
          console.error(error);
        });
      return false;
    },
    addSport(payload) {
      const path = 'http://localhost:5000/sports';
      axios.post(path, payload)
        .then(() => {
          this.getSports();
          this.message = 'Sport Added!';
          this.showMessage = true;
          return false;
        })
        .catch((error) => {
          // eslint-disable-next-line
          console.error(error);
        });
      return false;
    }

我的称呼方式是:

    this.uploadImage(formData, this.updateDeporte, payload);

有人可以帮我弄清楚该如何解决吗?

0 个答案:

没有答案