uniapp的uni.switchTab()跳转不刷新页面问题
解决方法:
在跳转到tabbar之前的页面(也就是点击事件就执行跳转的页面)的跳转方法里面写
uni.switchTab({
url: path,
success: function () {
var page = getCurrentPages().pop();
if (page == undefined || page == null) return;
page.onLoad();
}
})
这样就会在执行跳转方法后跳转到tabbar页面 并且执行 onLoad 等声明周期
onLoad(async (option: any) => {
}
uniapp的tabbar页面切换时候有时候监听不到生命周期
原因:
在 uni-app 中,tabBar 页面的生命周期和普通的页面生命周期有所不同。如果你发现 tabBar 页面监听不到生命周期,这可能是因为 tabBar 页面在启动时就已经加载,并且它们的生命周期和普通的页面跳转生命周期有所区别
- onLoad:页面加载时触发一次。但请注意,对于 tabBar 页面,当你首次打开应用时,所有 tabBar 页面都会触发 onLoad。之后,当你切换到不同的 tab 时,这些页面的 onLoad 不会被再次触发
- onShow:页面显示/切入前台时触发。当从其他非 tabBar 页面返回到 tabBar 页面时,或者切换 tab 时,都会触发 onShow
- onHide:页面隐藏/切入后台时触发。当你离开 tabBar 页面跳转到其他非 tabBar 页面时,会触发 onHide
- onUnload:页面卸载时触发。但在 tabBar 页面中,除非用户关闭应用,否则 onUnload 很少会被触发。
所以需要使用 onShow 和 onHide
对于 tabBar 页面,你可能需要更多地依赖 onShow 和 onHide 来处理页面显示和隐藏的逻辑