wx.reLaunch 不会触发 onHide 生命周期,这是一个bug 吗?

发布于 7 年前作者 mingtian12236 次浏览最后编辑 7 年前来自 ask

Page({

    onLoad() {

        setTimeout(() => { wx.reLaunch({ url: xxx }) }, 3000)

      },

      onHide() {

        console.log(123)

    }

})

如果不是bug,能否说明下为何这么设计?

2 回复
min81
min811 楼6 年前

第一个问题:因为在relaunch的时候并没有隐藏页面,而是先卸载页面栈内所有页面再重加载url对应的页面。因此并不会触发onHide。

第二个问题:onLaunch全局只会触发一次。而且relaunch并不是真正的“重启”小程序。

不过这里的命名确实有点让人疑惑,我们会重新考虑这里的命名规则。感谢反馈。

tsong
tsong2 楼5 年前

其实还有一个问题,就是 wx.reLaunch 为什么不会重新触发 onLaunch ? 总觉得这样的命名,应该是相对应的