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

请帮忙解决如下问题

请帮忙解决如下问题

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

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

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

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

原因是axios无法获取到this解决办法
created(){
vara=this
axios.get("/goods")
.then(function(response){
varres=response.data
if(res.status=="0"){
a.goodsList=res.result.list
}else{
a.goodsList=[]
}
})
就可以了
                            
查看完整回答
反对 回复 2019-05-24
  • 2 回答
  • 0 关注
  • 489 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信