我也遇到相同的问题了
App.js里的onShow也一样有相同的问题
暂时只能自己设个标识来侦测onShow是否已经被调用过了
以下这个办法是不得已的办法,但是如果要在每个Page里都做这个判断的话问题就严重了,得重写Page,用Component来替代,但是那又牵扯出更多的问题。
onShow: function() {
console.log(this.globalData.onShow); // 第一次被调用返回为False,第二次错误被调用返回为True
if (!this.globalData.onShow) {
this.globalData.onShow = true;
}
},
onHide: function() {
this.globalData.onShow = false;
}
|
找到一个应该可以暂时使用的方法,也不影响已经定义的onShow和onHide
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(new customPage({
onShow: function() {},
onHide: function() {}
}));
|
|