请帮忙解决如下问题

发布于 2022-09-06 09:05:43 字数 612 浏览 9 评论 0

完全没有办法,请教各位大神如何解决

data(){
            return {
                goodsList:[]
            }
        },
        created(){
        axios.get("/goods")
          .then(function (response) {
            var res=response.data
             if(res.status=="0"){
               this.goodsList=res.result.list
             }else{
              this.goodsList=[]
             }
          })
      },
        
                

后台数据是能获取到的但是报错信息 Uncaught (in promise) TypeError: Cannot set property 'goodsList' of undefined
就是this.goodsList=res.result.list这里出的问题改了名字也一样没有办法解决
请求大神

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

幻想少年梦 2022-09-13 09:05:44

this, this, this

梦里泪两行 2022-09-13 09:05:43

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

不可一世的女人 2022-09-13 09:05:43

原因是axios无法获取到this
解决办法

 created(){
         var a=this
        axios.get("/goods")
          .then(function (response) {
            var res=response.data
             if(res.status=="0"){
               a.goodsList=res.result.list
             }else{
              a.goodsList=[]
             }
          })

就可以了

三生一梦 2022-09-13 09:05:43
    created(){
        var _this = this;
        axios.get("/goods")
          .then(function (response) {
            var res=response.data
             if(res.status=="0"){
               _this.goodsList=res.result.list
             }else{
              _this.goodsList=[]
             }
          })
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文