收藏
回答

同一个page在路由栈存在超过两个,返回会触发这个page的onLoad

问题模块 框架类型 问题类型 终端类型 操作系统 微信版本 基础库版本
框架 小程序 Bug 微信iOS客户端 6.7.0 2.2.2

复现步骤:

1. 从 A1 页面(/pages/a?id=1)跳转到其他页面后,又跳转到 A2 页面(/pages/a?id=2),和前面的路由相同但是参数不同,这些跳转过程中都有触发  onLoad,但是没有触发 onUnload。

2. 然后从 A2 页面返回到上一页时会触发 onUnload,到这为止都是正常表现。

3. 一直返回到 A1 页面时,A1 页面的 onLoad 函数被执行了。


结果:

这样会导致一些需要绑定生成和销毁的对象产生 bug,比如定时器。



推测是因为 A1 和 A2 是同一个 page 实例,由于被销毁执行了 onUnload 后,跳转回来只能再创建一个新的 page 实例所以触发了 onLoad。这个问题能解决吗?还是说不能这么使用?


最后一次编辑于  2018-08-13  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

1 个回答

  • Mr.Hope
    Mr.Hope
    2018-08-25

    同问

    2018-08-25
    赞同
    回复