如何在AXIOS.interceptors.response.use()中使用SweetAlert2

时间:2019-01-13 16:18:15

标签: vue.js axios

我尝试将SweetAlert2合并到vue项目中,并且能够使用main.js上的swal()在视图中全局访问Vue.use()函数。

但是当我尝试在AXIOS.interceptors.response.use()函数内部使用它时,swal()变成了undefined

这基本上就是我的interceptor.js文件的样子。

import axios from 'axios'

let instance = axios.create({
   baseURL: '/'
});

export const AXIOS = instance;

AXIOS.interceptors.response.use(

   function(response) {
      // $swal() becomes undefined
      this.$swal('Error', 'Some kind of error', 'error')
      return response;
   }, 

   function(error) {

      // TODO:

      return Promise.reject(error)
   }
)

关于如何整合它的任何想法?也许你们对如何处理全球响应有更好的主意?

1 个答案:

答案 0 :(得分:2)

在回调函数中使用this的上下文时,它可能不再是您的Vue实例。

尝试使用以下命令修改您的interceptor.js:

import Vue from 'vue';

而不是使用this.$swal('Error', 'Some kind of error', 'error')

使用Vue.swal('Error', 'Some kind of error', 'error');