vue请求过程中调用问题
** 背景
我vue项目methods里面有三个方法,A方法,B方法,C方法,我在执行A方法里面调用B方法,B方法里面调用C方法,就报错了,说TypeError: Cannot read properties of undefined, 这个nextHandleSubmit方法没有被定义,这是为什么?
经过问gpt,结果竟然是:
在上述代码中,箭头函数内部的this
指向的是箭头函数被定义时的上下文,而不是方法verifyCheckCode
的实例。因此,当你在箭头函数内部调用this.nextHandleSubmit()
时,this
指向的是箭头函数的上下文,而不是Vue实例,导致无法调用nextHandleSubmit
方法。
原文:
axios
.post(verifyCheckCodeUrl, formData, {
headers: {
'Content-Type': 'multipart/form-data', // 设置请求头
}
})
.then(function (data) {
var d = data.data;
if (d.code === 200) {
console.log("here!")
// todo 处理token?
this.nextHandleSubmit()
}else{
message('手机验证码验证失败');
}
})
.catch((error) => {
console.log('verifyCheckCode error: ', error);
});
},
修改如下:
axios
.post(verifyCheckCodeUrl, formData, {
headers: {
'Content-Type': 'multipart/form-data', // 设置请求头
}
})
.then( (data) => { //!!!这边改了!!!!
var d = data.data;
if (d.code === 200) {
// todo 处理token?
this.nextHandleSubmit()
}else{
message('手机验证码验证失败');
}
})
.catch((error) => {
console.log('verifyCheckCode error: ', error);
});
本文作者:蜗牛使劲冲
本文链接:https://www.cnblogs.com/warrenwt/p/18289739
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步