diff --git a/packages/uni-app-plus/dist/index.v3.js b/packages/uni-app-plus/dist/index.v3.js index 4554fdce0b2b85c279082a1d6a16c2094c9b06f2..34b1011fe10441b32eafc1ac74dfae65d2fbbdd6 100644 --- a/packages/uni-app-plus/dist/index.v3.js +++ b/packages/uni-app-plus/dist/index.v3.js @@ -8402,9 +8402,16 @@ var serviceContext = (function () { const pages = getCurrentPages(); const len = pages.length; + let callonShow = false; + if (len >= 1) { // 前一个页面是非 tabBar 页面 const currentPage = pages[len - 1]; if (!currentPage.$page.meta.isTabBar) { + // 前一个页面为非 tabBar 页面时,目标tabBar需要强制触发onShow + // 该情况下目标页tabBarPage的visible是不对的 + // 除非每次路由跳转都处理一遍tabBarPage的visible,目前仅switchTab会处理 + // 简单起见,暂时直接判断该情况,执行onShow + callonShow = true; pages.reverse().forEach(page => { if (!page.$page.meta.isTabBar && page !== currentPage) { page.$remove(); @@ -8430,7 +8437,7 @@ var serviceContext = (function () { // 查找当前 tabBarPage,且设置 visible getCurrentPages(true).forEach(page => { if (('/' + page.route) === path) { - if (!page.$page.meta.visible) { + if (!page.$page.meta.visible || callonShow) { page.$vm.__call_hook('onShow'); } page.$page.meta.visible = true;