完全没有办法,请教各位大神如何解决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
浮云间
TA贡献1829条经验 获得超4个赞
原因是axios无法获取到this解决办法created(){vara=thisaxios.get("/goods").then(function(response){varres=response.dataif(res.status=="0"){a.goodsList=res.result.list}else{a.goodsList=[]}})就可以了
添加回答
举报
0/150
提交
取消