问题模块 框架类型 问题类型 终端类型 微信版本 基础库版本
框架 微信小程序 Bug 工具 6.6.6 2.0.2
当某个页面调用了 wx.reLaunch(),文档里说的是关闭其它所有页面并打开指定的页面,所以理论上其它所有页面被关闭时应该都会触发 onUnload(),可实际上 reLaunch 关闭他们时并没有调用 onUnload,仅调用了当前页面栈中的 onUnload,因为其它标签页不在 getCurrentPages() 返回的页面栈中,所以就不会被调用。
假如我在一个页面 onLaunch() 中往全局注册了或写入了某些东西,在 onUnload() 卸载这些写入的东西,一旦多个标签页某个页面调用了 wx.reLaunch(),页面逻辑就会出问题。
所以这里是不是应该调整为 wx.reLaunch() 不只是触发打开 getCurrentPages() 返回的页面 onUnload(),也应该在关闭其它标签页时调用他们的 onUnload()
微信小程序开发问题解答
微信小程序开发者回答:
还有问题,不 wx.reLaunch() 不仅没有调用其它标签页的 onUnload(),而且还没有触发那些页面里所使用组件的 detached()。页面效果稍复杂,就会出现各种问题。
微信小程序开发者回答:
这里确实是有这问题,reLaunch只对页面栈中的页面进行了unload。后续我们会尝试修复这个bug的,感谢反馈。
本文网址:http://www.91bianli.com/weixinxiaochengxu/48464.html