标签:keyword header code 接口 res 过程 ica str cat
最近在使用vue过程中,使用axios进行接口请求,确发现取不到值,返回为undefined。
show (item) { let searchText = item.keyword
console.log(this) // 返回vue实例 axios.get(‘http://localhost:3000/search/multimatch?keywords=‘ + searchText, {}, {headers: {‘Content-Type‘: ‘application/x-www-form-urlencoded‘}}) .then(function(res) { console.log(this) // undefined if (res.data.code == 200) { this.artistData = res.data.result.artist[0] this.albumData = res.data.result.album[0] } }) .catch((err) => { console.log(err) })
}
在vue中,this都指向vue,然而在axios中,this却指向axios,因此需要使用箭头函数,不进行this的绑定
show (item) { let searchText = item.keyword console.log(this) // 返回vue实例 axios.get(‘http://localhost:3000/search/multimatch?keywords=‘ + searchText, {}, {headers: {‘Content-Type‘: ‘application/x-www-form-urlencoded‘}}) .then((res) => { console.log(this) // 返回vue实例 if (res.data.code == 200) { this.artistData = res.data.result.artist[0] this.albumData = res.data.result.album[0] } }) .catch((err) => { console.log(err) }) }
或者将this的值赋给内部变量
show (item) {
let searchText = item.keyword
console.log(this) // 返回vue实例
let that = this;
axios.get(‘http://localhost:3000/search/multimatch?keywords=‘ + searchText, {}, {headers: {‘Content-Type‘: ‘application/x-www-form-urlencoded‘}})
.then((res) => {
console.log(that) // 返回vue实例
if (res.data.code == 200) {
this.artistData = res.data.result.artist[0]
this.albumData = res.data.result.album[0]
}
})
.catch((err) => {
console.log(err)
})
}
标签:keyword header code 接口 res 过程 ica str cat
原文地址:https://www.cnblogs.com/sk-3/p/9004051.html