码迷,mamicode.com
首页 > 移动开发 > 详细

VUE使用axios数据请求时报错 TypeError: Cannot set property 'xxxx' of undefined 的解决办法

时间:2020-05-14 13:06:30      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:axios   外部   数据请求   解决   html   code   实例   err   span   

正常定义全局变量:

data:function (){
      return{
        currentOrders:[]
      }
    },

  使用Axios发送请求并获取后端数据时,如果在then中使用this.currentOrders会出现TypeError: Cannot set property ‘xxxx‘ of undefined错误。

  原因是使用this$axios().then(function(response){}).catch()格式获取参数,then的内部 this 没有被绑定,所以不能使用Vue的实例化的this。

  解决办法一:在this.$axios外部将this赋值为自定义变量:var that = this,然后在then里面使用that.currentOrders

var that = this
      this.$axios({
        method: get,
        url: xxxxxx,
      }).then(function (response) {
        var jsonObj = JSON.parse(JSON.stringify(response.data))
        if (jsonObj.code === ERR_ok){
          that.currentOrders = jsonObj.data
        }
      }).catch(function (error) {
        console.log(error);
      })

第二种方法:用ES6箭头函数,箭头方法可以和父方法共享变量

this.$axios({
        method: ‘get‘,
        url: ‘xxxxxx‘,
      }).then((response)=>{})
      .catch(){}
 

  

VUE使用axios数据请求时报错 TypeError: Cannot set property 'xxxx' of undefined 的解决办法

标签:axios   外部   数据请求   解决   html   code   实例   err   span   

原文地址:https://www.cnblogs.com/xjtsh/p/12887829.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!