我尝试将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)
}
)
关于如何整合它的任何想法?也许你们对如何处理全球响应有更好的主意?
答案 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');