下面两个方法都无法修改初始化数据中的sms,第一种是没效果,第二种直接报sms_code为空。求各位前辈指点一下
Page({
data: {
TabCur: 0,
scrollLeft:0,
type: 0,
btn_disabled:true,
sms: 0
},
onLoad: function (options) {
wx.request({
url: 'http://xxx/wx/login/config',
success: function(res){
this.setData({
sms:res.data.data
})
}
})
},
Page({
data: {
TabCur: 0,
scrollLeft:0,
type: 0,
btn_disabled:true,
sms: 0
},
onLoad: function (options) {
var sms_code;
wx.request({
url: 'http://xxx/wx/login/config',
success: function(res){
sms_code = res.data.data;
}
})
this.setData({
sms: sms_code
})
},
//作用域的问题,最外层加上var that = this: var that = this wx.request({ url: 'http://xxx/wx/login/config', success: function(res){ that.setData({ sms:res.data.data }) } })
//url请求
function requestPost(url,data) {
var result;
const urlHead = 'http://wsy.musp.cn/' + url;
var slef = this;
wx.request({
header: {
'content-type': 'application/json' // 默认值
},
method: "POST",
dataType: 'json',
url: urlHead,
data: {
openid: getString("openid"),
token: getString("token"),
data: data
},
success: (res) => {
slef.result = res.data.data;
}
})
return result;
}
如果支持 es6 的话 ,改成箭头函数
success: (res) => { // 这里 this 能正常使用 }
方法一 this 作用域问题
方法二 异步问题
在方法外面,var that=this; 然后在方法的success里面用that.setData设置值。