[BUG]tab中调用reLanuch,非当前tab的unload不会调用
发布于 6 年前 作者 chaoyin 2950 次浏览 来自 问答

tabbar包含两个页面A,B,当前页面为B,在B中调用reLaunch({url: C}),B的onUnload会执行,A的onUnload不会执行

既然reLaunch的意义是“关闭所有页面,打开到应用内的某个页面”,那么理应调用所有关闭页面的onUnload,因为如果不这样,页面在onLoad中申请的资源没有机会释放


举个例子,小程序中引入了redux进行状态管理,有A,B,C三个页面,A,B为tab page,C为登录页

A的onLoad中subscribe了store的listener,相应在onUnload中释放,B中有个退出按钮,点击的效果是登出到登录页C,期望的行为是此时非活动tab A的onUnload会自动调用以释放listener

1 回复

我也碰到这个问题,我是在tab页有一个红点的轮询,在unload 和 onhide的时候 unsubscribe.

当我的接口返回401的时候,我会wx.reLaunch 到 login页面,这时候 unload 并没有触发,导致轮询还在继续

回到顶部