当某个页面调用了 wx.reLaunch(),文档里说的是关闭其它所有页面并打开指定的页面,所以理论上其它所有页面被关闭时应该都会触发 onUnload(),可实际上 reLaunch 关闭他们时并没有调用 onUnload,仅调用了当前页面栈中的 onUnload,因为其它标签页不在 getCurrentPages() 返回的页面栈中,所以就不会被调用。


假如我在一个页面 onLaunch() 中往全局注册了或写入了某些东西,在 onUnload() 卸载这些写入的东西,一旦多个标签页某个页面调用了 wx.reLaunch(),页面逻辑就会出问题。


所以这里是不是应该调整为 wx.reLaunch() 不只是触发打开 getCurrentPages() 返回的页面 onUnload(),也应该在关闭其它标签页时调用他们的 onUnload()


展开全部
收起
2回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Christian

    11人对此回答表示赞同

    还有问题,不wx.reLaunch()不仅没有调用其它标签页的onUnload(),而且还没有触发那些页面里所使用组件的detached()。页面效果稍复杂,就会出现各种问题。

    展开
    11
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 炎凉世态

    4人对此回答表示赞同

    这里确实是有这问题,reLaunch只对页面栈中的页面进行了unload。后续我们会尝试修复这个bug的,感谢反馈。

    展开
    4
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部