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 |
跪求回复啊
–
顶顶顶顶
。。。
顶顶顶顶
顶顶顶顶
顶顶
…
萨顶顶
以后不在本论坛提问题了,浪费时间
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跳转页面呢
顶顶顶
问题复现,已反馈相关人员排查,已加分感谢反馈!
1111
真服了,一个 bug 到现在 8 个月了还没解决
还没解决,是根本就放弃了不打算解决吧
在使用uni-app进行开发时,nvue
页面与普通的Vue页面在处理上存在一些差异,特别是在涉及到页面预加载和tabbar显示等方面。针对你提到的在使用uni.preloadPage
预加载tabbar页面时,进入被加载的tabbar页面后tabbar消失的问题,这通常是因为nvue页面的tabbar管理方式和Vue页面有所不同所导致的。
为了解决这个问题,我们需要确保在预加载页面时,tabbar的状态能够正确保持。以下是一个可能的解决方案,通过代码示例来展示如何在预加载tabbar页面时保持tabbar的显示:
- 确保tabbar配置正确:首先,确保在
pages.json
中正确配置了tabbar页面。
"tabBar": {
"list": [
{
"pagePath": "pages/index/index",
"text": "首页"
},
{
"pagePath": "pages/other/other",
"text": "其他"
}
]
}
- 使用
uni.preloadPage
预加载页面:在App启动时或者需要预加载的时候调用uni.preloadPage
。
// 在App.vue的onLaunch或onShow生命周期函数中预加载页面
onLaunch() {
uni.preloadPage({
url: '/pages/other/other' // 预加载其他页面
});
}
- 在nvue页面中管理tabbar:由于nvue页面和Vue页面在渲染机制上的差异,如果直接使用预加载可能会导致tabbar显示问题。一种可能的解决方案是在nvue页面中手动管理tabbar的显示和隐藏。这通常涉及到在nvue页面中使用自定义的tabbar组件,并通过监听页面生命周期事件来控制tabbar的显示状态。
例如,在nvue页面的onShow
和onHide
事件中更新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的显示状态,从而解决你遇到的问题。