时间:2019-04-30 来源:小程序工厂
希望官方关注一下哈,这种对于需要自动登陆的微信小程序 会有很大的影响
看你说的,发现我们也是的,onSHow和onHide都调用了2次
我也遇到相同的问题了
App.js里的onShow也一样有相同的问题
暂时只能自己设个标识来侦测onShow是否已经被调用过了
以下这个办法是不得已的办法,但是如果要在每个Page里都做这个判断的话问题就严重了,得重写Page,用Component来替代,但是那又牵扯出更多的问题。
onShow: function() {
console.log(this.globalData.onShow); // 第一次被调用返回为False,第二次错误被调用返回为True
if (!this.globalData.onShow) {
// execute code
this.globalData.onShow = true;
}
},
onHide: function() {
this.globalData.onShow = false;
}
找到一个应该可以暂时使用的方法,也不影响已经定义的onShow和onHide
// custom-page.js
let customPage = function(options) {
options.onShowFlag = false;
let onShowFunction = options.onShow; // 这里自行做错误监测
options.onShow = function() {
if (!this.onShowFlag) {
onShowFunction.call(this, arguments);
this.onShowFlag = true;
}
};
let onHideFunction = options.onHide; // 这里自行做错误监测
options.onHide = function() {
this.onShowFlag = false;
onHideFunction.call(this, arguments);
};
return options;
}
// page
Page(new customPage({
onShow: function() {},
onHide: function() {}
}));