为了账号安全,请及时绑定邮箱和手机立即绑定

Axios配置文件中this为undefined?

Axios配置文件中this为undefined?

宝慕林4294392 2019-05-11 16:21:41
问题描述在this.$router发现没这个属性,后面查了下this为undefined相关代码//请把代码文本粘贴到下方(请勿用图片代替代码)importaxiosfrom'axios'import{Loading,Message}from'element-ui'importDebouncefrom'lodash/debounce'constAxios=axios.create({baseURL:'/',timeout:'10000',responseType:'json',withCredentials:true,headers:{"Content-Type":"application/json;charset=UTF-8"}});letneedLoadingRequestCount=0;letloadingObj;Axios.interceptors.request.use(config=>{console.log(this);if(config.showLoading){showFullScreenLoading();}returnconfig;},error=>{if(needLoadingRequestCount!==0){loadingObj.close();}Message({showClose:true,message:'服务器有误!请稍后重试',type:"error"});returnPromise.reject(error);});Axios.interceptors.response.use(res=>{//console.log(this);if(res.config.showLoading){tryHideFullScreenLoading();}if(res.data.code!==200&&res.data.message){Message({showClose:false,type:"error",center:true,message:res.data.message?res.data.message:"服务器繁忙!请重试"});if(res.data.code===9999100){this.$router.push('/login');}returnPromise.reject(res.data.message);}returnres;},error=>{if(needLoadingRequestCount!==0){loadingObj.close();}Message({showClose:true,message:'服务器繁忙!请稍后重试',type:"error"});returnPromise.reject(error);});functionshowFullScreenLoading(){if(needLoadingRequestCount===0){loadingObj=Loading.service({lock:true,text:"Loading",spinner:'el-icon-loading',background:'rgba(0,0,0,0.7)'});}needLoadingRequestCount++}functiontryHideFullScreenLoading(){if(needLoadingRequestCountAxios.post(url,data,config),get:(url,config={showLoading:true})=>Axios.get(url,config),delete:(url,config={showLoading:true})=>Axios.delete(url,config)}你期待的结果是什么?实际看到的错误信息又是什么?明明都是箭头函数啊,this怎么会丢呢
查看完整描述

2 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

楼主,你好!当前的this已经换过了,不再是vue实例化的对象了。所以可以再main.js里初始化实例对象的时候挂载到window下面。
//main.js
...
window.vm=newVue({});
...
//axios
window.vm.$router.push('..')
                            
查看完整回答
反对 回复 2019-05-11
  • 2 回答
  • 0 关注
  • 1477 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号