同一个page在路由栈存在超过两个,返回会触发这个page的onLoad
复现步骤:
-
从 A1 页面(/pages/a?id=1)跳转到其他页面后,又跳转到 A2 页面(/pages/a?id=2),和前面的路由相同但是参数不同,这些跳转过程中都有触发 onLoad,但是没有触发 onUnload。
-
然后从 A2 页面返回到上一页时会触发 onUnload,到这为止都是正常表现。
-
一直返回到 A1 页面时,A1 页面的 onLoad 函数被执行了。
结果:
这样会导致一些需要绑定生成和销毁的对象产生 bug,比如定时器。
推测是因为 A1 和 A2 是同一个 page 实例,由于被销毁执行了 onUnload 后,跳转回来只能再创建一个新的 page 实例所以触发了 onLoad。这个问题能解决吗?还是说不能这么使用?