uni-app 在非tabbar页面显示出了tabbar
uni-app 在非tabbar页面显示出了tabbar
示例代码:
// tabbar页
<template>
<view class="container">
<text class="title" @tap="onDetail">tabbar</text>
</view>
</template>
<script>
export default {
methods: {
onDetail() {
uni.navigateTo({
url: '/pages/demo/detail'
})
}
}
}
</script>
// detail.nvue
<template>
<view class="container">
<text class="title">详情</text>
</view>
</template>
<script>
export default {
onLoad() {
uni.reLaunch({
url: '/pages/demo/login'
})
}
}
</script>
操作步骤:
在tabbar页面写跳转到非tabbar页面,非tabbar页面onLoad时reLaunch到另一个非tabbar页面
预期结果:
不展示tabbar,展示正常
实际结果:
展示了tabbar,页面栈混乱
bug描述:
在tabbar页面跳转到非tabbar页面,非tabbar页面在onLoad的时候reLaunch跳转到另一个非tabbar页面,tabbar会显示在页面上,但是点击无效,然后跳转会tabbar页面栈会乱掉。
附件:
更多关于uni-app 在非tabbar页面显示出了tabbar的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在首页显示之前,不能跳转页面,否则会出现未定义的行为 你可以延迟下跳转登录页面的行为解决问题 问题还在优化中
更多关于uni-app 在非tabbar页面显示出了tabbar的实战教程也可以访问 https://www.itying.com/category-93-b0.html
先延迟跳转,问题复现,已反馈给相关人员排查,已加分,感谢您的反馈!
一样遇到了
如何解决,我也遇到了类似的,我进去会加载首页,没有token去到登录页,登录页是非tabbar页面,但也有tabbar
放一个空页面,在那里判断有没有token,有跳首页,没有跳登录
iOS 无此问题,安卓复现。
升级至HBuilderX 3.6.1-alpha 用上面的demo测试是否正常?
HBuilderX 3.6.1-alpha 已修复
新版还是存在此问题
用上方评论区的示例能复现吗?
是的
我的也出现这个问题 HBuilderX 3.6.4
其他页强制在onShow 使用 uni.hideTabBar()隐藏还是出现 怎么解决啊
请提供下简单可复现示例(上传附件)方便定位问题
等官方解决吧
HX3.6.4 Android 11 Redmi K40用以上示例均未复现此问题,请提供下简单可复现示例(上传附件)方便定位问题
H5正常 但是App真机运行和打包就会有问题, 应该是 uni-simple-router 的路由守卫导致了 tabBar 出现bug
相关同学排查后反馈:在首页显示之前,不能跳转页面,否则会出现未定义的行为 你可以延迟下跳转登录页面的行为解决问题 问题还在优化中
回复 DCloud_Android_ST: 还有个问题就是华为鸿蒙系统的 P40 关闭再打开就会卡死在路由的逻辑层
非tabbar页面莫名拥有tabbar例子
相关同学排查后反馈:在首页显示之前,不能跳转页面,否则会出现未定义的行为 你可以延迟下跳转登录页面的行为解决问题 问题还在优化中
这种延迟跳转登录会造成一闪的情况,就没有其他方法可以解决了么?
首页放一个空白页
HBuilder 3.6.4,
uniapp开发微信小程序,uni.reLaunch跳转,不会出现连个tabbar的现象,但是支付宝小程序会出现
坑挖不停
在 uni-app
中,如果非 tabbar
页面显示出了 tabbar
,通常是因为在 pages.json
中配置了 tabBar
,并且当前页面的路径被错误地包含在 tabBar
的 list
中。以下是可能的原因和解决方法:
1. 检查 pages.json
配置
确保非 tabbar
页面的路径没有出现在 tabBar
的 list
中。tabBar
的 list
应该只包含那些需要显示 tabbar
的页面。
{
"pages": [
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页"
}
},
{
"path": "pages/detail/detail",
"style": {
"navigationBarTitleText": "详情页"
}
}
],
"tabBar": {
"list": [
{
"pagePath": "pages/index/index",
"text": "首页"
}
]
}
}
在上面的例子中,pages/detail/detail
是一个非 tabbar
页面,因此它不应该出现在 tabBar
的 list
中。
2. 确保页面跳转正确
在跳转到非 tabbar
页面时,确保使用的是 uni.navigateTo
而不是 uni.switchTab
。uni.switchTab
用于跳转到 tabbar
页面,而 uni.navigateTo
用于跳转到普通页面。
// 错误的方式,会导致非 tabbar 页面显示 tabbar
uni.switchTab({
url: '/pages/detail/detail'
});
// 正确的方式
uni.navigateTo({
url: '/pages/detail/detail'
});
3. 检查页面路径
确保页面路径的拼写和大小写与 pages.json
中的配置完全一致。路径错误也可能导致 tabbar
显示异常。
4. 清除缓存
有时候,修改了 pages.json
后,可能需要清除缓存或重新编译项目才能看到效果。
5. 检查自定义 tabbar
如果你使用了自定义 tabbar
,确保在非 tabbar
页面中正确地隐藏了 tabbar
。可以通过在页面的 onShow
或 onLoad
生命周期中动态控制 tabbar
的显示与隐藏。
onShow() {
uni.hideTabBar();
}