VUE使用axios数据请求时报错 TypeError: Cannot set property 'xxxx' of undefined 的解决办法
Posted 、所剩无几
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VUE使用axios数据请求时报错 TypeError: Cannot set property 'xxxx' of undefined 的解决办法相关的知识,希望对你有一定的参考价值。
正常定义全局变量:
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 的解决办法的主要内容,如果未能解决你的问题,请参考以下文章
vue 使用本地模拟json数据axios调用时报错404 ,最佳解决方案
Vue+Typescript中在Vue上挂载axios使用时报错
在vue-cli中使用axios时报错TypeError: Cannot set property 'lists' of undefined at eval