问题:
在onload中调用一个方法,方法中调用wx.request,在处理结果的时候使用this.setData,不起作用。
//页面加载
onLoad: function (options) {
this.pushUrlInit();
...}
//获取推流地址
pushUrlInit: function () {
wx.request({
url: '',
data: {
},
method: 'POST',
dataType: 'json',
header: {
'content-type': 'application/json'
},
success: function (res) {
var returnData = res.data;
if(returnData.code=='0'){
this.setData({
key : returnData.result
})
}
}
})
}},
原因:this的使用套了两层方法,已经不再指向page
解决:
方法1:提前声明一个变量指向page
//获取推流地址
pushUrlInit: function () {
var thisPage = this;
wx.request({
url: '',
data: {
},
method: 'POST',
dataType: 'json',
header: {
'content-type': 'application/json'
},
success: function (res) {
var returnData = res.data;
if(returnData.code=='0'){
thisPage.setData({
key : returnData.result
})
}
}
})
}},
方法2:获取当前页面对象
wx.request({
url: '',
data: {
},
method: 'POST',
dataType: 'json',
header: {
'content-type': 'application/json'
},
success: function (res) {
var returnData = res.data;
if(returnData.code=='0'){
var pages = getCurrentPages()
var currentPage = pages[pages.length - 1]
currentPage.setData({
key : returnData.result
})
}
}
})