小程序自定义tabbar页面 渲染后切换页面再回来,为什么当前tabbar页面的onshow不触发,show不触发我就没法刷新数据呀
时间: 2024-03-12 14:50:21 浏览: 68
微信小程序tabBar 返回tabBar不刷新页面
您好,针对您的问题,可能是由于小程序页面栈机制导致的。
在小程序中,当您从一个页面跳转到另一个页面后再返回时,只会触发当前页面的 onShow() 方法,而不会触发 TabBar 页面的 onShow() 方法。因此,如果您在自定义 TabBar 页面中需要在每次展示时都触发回调函数并刷新数据,可以考虑使用小程序的事件机制。
具体实现方式可以在自定义 TabBar 页面的 onLoad() 方法中注册事件监听器,并在事件触发时触发回调函数,例如:
```
// 在 onLoad() 方法中注册事件监听器
onLoad() {
// 监听自定义事件 'refreshTabBar'
wx.onAppShow(() => {
// 触发回调函数
this.onTabBarShow()
})
}
// 在 onTabBarShow() 方法中触发自定义事件 'refreshTabBar'
onTabBarShow() {
// 触发自定义事件 'refreshTabBar'
wx.triggerEvent('refreshTabBar')
}
```
以上代码中,假设在自定义 TabBar 页面中定义了一个 onTabBarShow() 方法作为回调函数,并在 onLoad() 方法中注册了事件监听器。当 TabBar 页面展示时,会触发 onTabBarShow() 方法并通过 wx.triggerEvent() 方法触发自定义事件 'refreshTabBar'。在其他页面中,可以通过 wx.on() 方法监听 'refreshTabBar' 事件,并在事件触发时执行相应的操作。
希望以上内容能对您有所帮助。如有任何疑问,请随时追问。
阅读全文