1、应用场景:
新增商品订单后,切换到个人中心页面,发现订单数量没有增加,因为此时小程序并没有请求最新的服务器数据
2、解决方法:
我们一般会在onLoad钩子函数之中调用页面的初始化方法,此种方法显然不能满足我们的需求;
所以官方文档提供了另一个钩子函数:onShow;这个方法会在页面展示的时候重新执行,这样就可以解决这个问题
onShow(){
//调用函数、方法
var that=this;
that.function1();
}
官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/route.html#路由方式
3、以下是在搜集资料时发现onshow可能会导致的问题:
安卓手机的onShow会被触发两次,但在IOS手机中则没有碰到这样的情况(本人未发现这个问题)
另附解决方案:
若方法必须要放到onShow中执行,则可以通过设置开关来避免这个问题
1、在data中定义一个Boolean值:hadOnShow: false
2、在onshow函数中判断这个Boolean值
onShow: function () {
let _this = this
if (_this .data.hadOnShow) {
return
}
_this .setData({
hadOnShow: true
})
console.log("onshowing")
//调用初始化方法
},