uni-app nvue使用uni.preloadPage页面预加载tabbar页面时,进入被加载的tabbar页面tabbar消失,苹果安卓均如此

uni-app nvue使用uni.preloadPage页面预加载tabbar页面时,进入被加载的tabbar页面tabbar消失,苹果安卓均如此

测试过的手机

华为nova6 苹果13

操作步骤

uniapp nvue vue3使用uni.preloadPage页面预加载tabbar页面的时候在进入被加载tabbar页面里时tabbar消失了.试不同的tabbar页面都这样,苹果安卓同样

预期结果

预加载tabbar页面

实际结果

tabbar消失

bug描述

uniapp nvue vue3使用uni.preloadPage页面预加载tabbar页面的时候在进入被加载tabbar页面里时tabbar消失了.试不同的tabbar页面都这样,苹果安卓同样

相关链接

开发环境与项目信息

详情
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10
HBuilderX类型 Alpha
HBuilderX版本号 3.8.1
手机系统 全部
手机厂商 华为
页面类型 nvue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app nvue使用uni.preloadPage页面预加载tabbar页面时,进入被加载的tabbar页面tabbar消失,苹果安卓均如此的实战教程也可以访问 https://www.itying.com/category-93-b0.html

22 回复

跪求回复啊

更多关于uni-app nvue使用uni.preloadPage页面预加载tabbar页面时,进入被加载的tabbar页面tabbar消失,苹果安卓均如此的实战教程也可以访问 https://www.itying.com/category-93-b0.html


顶顶顶顶

。。。

顶顶顶顶

顶顶顶顶

顶顶

萨顶顶

以后不在本论坛提问题了,浪费时间

uniappnvue vue3项目 新创建来一个项目又试了下,还是一样的tabbar消失
有两个 tab 页面:A 和 B。
当首次打开应用程序并打开页面 A 时,使用 uni.preloadPage 预加载页面 B。
当点击 tab 切换到页面 B 时,tabbar 消失了。
// 在页面 A 中预加载页面 B uni.preloadPage({ url: ‘/pages/B/B’, success: function(res) { console.log(‘预加载成功’); } });
// 在页面 B 中显示 tabbar onShow() { uni.showTabBar({ animation: true }); }
这样也不行 只要点击预加载过的tabbar页面tabbar就会消失

为什么要使用uni.preloadPage跳转页面呢

想体验好一点,安卓打开页面卡的一批

问题复现,已反馈相关人员排查,已加分感谢反馈!

真服了,一个 bug 到现在 8 个月了还没解决

还没解决,是根本就放弃了不打算解决吧

在使用uni-app进行开发时,nvue页面与普通的Vue页面在处理上存在一些差异,特别是在涉及到页面预加载和tabbar显示等方面。针对你提到的在使用uni.preloadPage预加载tabbar页面时,进入被加载的tabbar页面后tabbar消失的问题,这通常是因为nvue页面的tabbar管理方式和Vue页面有所不同所导致的。

为了解决这个问题,我们需要确保在预加载页面时,tabbar的状态能够正确保持。以下是一个可能的解决方案,通过代码示例来展示如何在预加载tabbar页面时保持tabbar的显示:

  1. 确保tabbar配置正确:首先,确保在pages.json中正确配置了tabbar页面。
"tabBar": {
    "list": [
        {
            "pagePath": "pages/index/index",
            "text": "首页"
        },
        {
            "pagePath": "pages/other/other",
            "text": "其他"
        }
    ]
}
  1. 使用uni.preloadPage预加载页面:在App启动时或者需要预加载的时候调用uni.preloadPage
// 在App.vue的onLaunch或onShow生命周期函数中预加载页面
onLaunch() {
    uni.preloadPage({
        url: '/pages/other/other' // 预加载其他页面
    });
}
  1. 在nvue页面中管理tabbar:由于nvue页面和Vue页面在渲染机制上的差异,如果直接使用预加载可能会导致tabbar显示问题。一种可能的解决方案是在nvue页面中手动管理tabbar的显示和隐藏。这通常涉及到在nvue页面中使用自定义的tabbar组件,并通过监听页面生命周期事件来控制tabbar的显示状态。

例如,在nvue页面的onShowonHide事件中更新tabbar的显示状态:

export default {
    onShow() {
        // 页面显示时,确保tabbar显示(如果需要的话,可以调用自定义tabbar组件的显示方法)
        this.$refs.customTabbar.show();
    },
    onHide() {
        // 页面隐藏时,隐藏tabbar(同样,调用自定义tabbar组件的隐藏方法)
        this.$refs.customTabbar.hide();
    }
}

注意:上述代码中的this.$refs.customTabbar.show()this.$refs.customTabbar.hide()是假设你有一个自定义的tabbar组件,并且已经通过ref属性进行了引用。你需要根据自己的实际情况来调整这部分代码。

通过上述方法,你可以在预加载tabbar页面时保持tabbar的显示状态,从而解决你遇到的问题。

回到顶部