同一个page在路由栈存在超过两个,返回会触发这个page的onLoad
发布于 5 年前 作者 xgong 3500 次浏览 来自 问答

复现步骤:

  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。这个问题能解决吗?还是说不能这么使用?

1 回复
回到顶部