请问大家一个在小程序开发时,容易遇到的一个问题怎么解决更合适?

请问大家一个在小程序开发时,容易遇到的一个问题怎么解决更合适?

我这个页面有个onload 有些参数需要从options里面接收 然后做下图的接口数据请求

请问大家一个在小程序开发时,容易遇到的一个问题怎么解决更合适?

这个接口是需要登录之后才能正常调用的,所以会有个失败就执行_util2.default.login()的登录方法,

但是我重新调用登录后,登录是成功了,但是页面数据却没有更新

我想的是重新刷新下页面,但是如果重新刷新页面会导致onload的options参数无法接收到,

或者 是再次调用下Redenvelope_click_info 这个接口, 但是这样也会导致我无法获取onload里传过来的mid 和urid 参数,

请问大家一个在小程序开发时,容易遇到的一个问题怎么解决更合适?

请问这种情况 一般如何处理比较合适,有什么比较好的方法思路吗?

  onLoad: function onLoad(options) {

console.log(options,'options0')

var mid = options.mid

var urid = options.urid

var share = options.share

this.setData({

mid:mid,

urid:urid,

share:share

})

_tip2.default.loading();

var that = this;

wx.getStorage({

key: 'session_key',

success: function success(res) {

_wxRequest2.default.post({

'url': _api2.default.Redenvelope_click_info,

'data': {

rd3_key: res.data,

mid: mid,

urid:urid

}

}).then(function (res) {

if (res.code == 100) {

console.log(res.data.status,'resss333')

if(res.data.status == 1){

that.setData({

show_tc:true

})

}

that.setData({

data_content:res.data,

red_id:res.data.red_id

})

} else{

_tip2.default.toast(res.msg);

}

_tip2.default.loaded();

});

},

fail: function fail() {

_util2.default.login();

}

});

},


回答:

不建议你和后端这样设计系统,你们这样搞,在接口出问题的时候,极易造成死循环。

如果一定要这样弄,可以这样:

onLoad: function onLoad(options) {

const sotreOptions = wx.getStorageSync('__OPTIONS')

if(!sotreOptions) wx.setStorageSync('__OPTIONS', options)

else options = sotreOptions

var mid = options.mid

var urid = options.urid

var share = options.share

this.setData({

mid:mid,

urid:urid,

share:share

})

_tip2.default.loading();

var that = this;

wx.getStorage({

key: 'session_key',

success: function success(res) {

_wxRequest2.default.post({

'url': _api2.default.Redenvelope_click_info,

'data': {

rd3_key: res.data,

mid: mid,

urid:urid

}

}).then(function (res) {

if (res.code == 100) {

wx.removeStorage({ key: '__OPTIONS'})

console.log(res.data.status,'resss333')

if(res.data.status == 1){

that.setData({

show_tc:true

})

}

that.setData({

data_content:res.data,

red_id:res.data.red_id

})

} else{

_tip2.default.toast(res.msg);

}

_tip2.default.loaded();

});

},

fail: function fail() {

_util2.default.login();

}

});

},

以上是 请问大家一个在小程序开发时,容易遇到的一个问题怎么解决更合适? 的全部内容, 来源链接: utcz.com/p/934420.html

回到顶部