一、报错
出现this.setData is not a function
报错的绝大多数情况是,在回调时,this指向作用域为当前异步方法所在的对象,详见微信小程序异常处理——this.setData is not a function报错处理
二、排查原因
但我并没有在回调中使用this.setData()
,仅在onLoad里使用也报了这个错误,于是将问题定位到使用了uni-app框架的原因上。
三、解决方式:
3.1 直接使用this.xx = xxx
修改:
this.setData({
loading: false,
areaList: response.data.data
})
为:
this.loading = false;
this.areaList = response.data.data。
3.2 重写setData方法
setData:function(obj){
let that = this;
let keys = [];
let val,data;
Object.keys(obj).forEach(function(key){
keys = key.split('.');
val = obj[key];
data = that.$data;
keys.forEach(function(key2,index){
if(index+1 == keys.length){