uni.$off 可能会移除过多的通知,导致通知不触发
2024-05-22 17:13 法子 阅读(150) 评论(0) 编辑 收藏 举报如果页面 A 和页面 B 都注册通知 'info-change',
// 页面 A onLoad (options) { uni.$on('info-change', this.reloadListA); }, // 页面 B onLoad (options) { uni.$on('info-change', this.reloadListB); },
在 onUnload 函数种都移除了这个通知,但是移除的时候没有提供回调函数
// 页面 A onUnload () { uni.$off('info-change') }, // 页面 B onUnload () { uni.$off('info-change') },
当页面 A 跳转到页面 B,返回到页面 A,再跳转到页面 B,这时候,发出通知'info-chnage',页面 A 就不会触发。
因为退出页面 B 的时候,uni.$off('info-change'),会移除所有的 'info-change' 通知
应该
// 页面 A onUnload () { uni.$off('info-change', this.reloadListA) }, // 页面 B onUnload () { uni.$off('info-change', this.reloadListB) },