猿问

请帮忙解决如下问题

完全没有办法,请教各位大神如何解决
data(){
return{
goodsList:[]
}
},
created(){
axios.get("/goods")
.then(function(response){
varres=response.data
if(res.status=="0"){
this.goodsList=res.result.list
}else{
this.goodsList=[]
}
})
},
后台数据是能获取到的但是报错信息Uncaught(inpromise)TypeError:Cannotsetproperty'goodsList'ofundefined就是this.goodsList=res.result.list这里出的问题改了名字也一样没有办法解决请求大神
UYOU
浏览 490回答 2
2回答

饮歌长啸

在js里用this的时候一定要小心,因为这个this通常指的是调用这个函数的对象,当你无法确定是谁调用了这个函数,就要在这个函数的外面,将你要用到的this所指的对象赋值给一个变量,然后将这个变量在函数内部使用在你的这段代码中,正如楼上的回答,先在axios.get()执行前,将this也就是这个vue对象赋值给a即vara=this关于this相关的我写过一篇文章,有空可以看看哈javascript对象不完全探索记录01:this!which?-lskrat

浮云间

原因是axios无法获取到this解决办法created(){vara=thisaxios.get("/goods").then(function(response){varres=response.dataif(res.status=="0"){a.goodsList=res.result.list}else{a.goodsList=[]}})就可以了
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答