zookzook
zookzook
  • 发布:2024-07-11 23:54
  • 更新:2024-09-15 05:23
  • 阅读:408

【报Bug】WEB 版本 App.vue onLaunch 里调用 uni.hideTabbar() 会提示 hideTabBar:fail not TabBar page

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 14.1.1 (23B81)

HBuilderX类型: 正式

HBuilderX版本号: 4.23

浏览器平台: Edge

浏览器版本: Version 126.0.2592.81 (Official build) (arm64)

项目创建方式: HBuilderX

操作步骤:

WEB 版本在 App.vue onLanuch 或 onShow 里调用 uni.hideTabbar()

预期结果:

可以隐藏 tabbar

实际结果:

会提示
hideTabBar:fail not TabBar page

bug描述:

WEB 版本在 App.vue onLanuch 或 onShow 里调用 uni.hideTabbar()

会提示
hideTabBar:fail not TabBar page

4.02 版本是好的,可以正常隐藏
4.23 版本有问题

在对应 tab 页面的 onShow 里调用是没问题的。
现在的问题就是,雪花 loading 的时候总是有 tabbar,请问如何在一开始就隐藏掉 tabbar?一显一隐的很难看。

2024-07-11 23:54 负责人:DCloud_UNI_yuhe 分享
已邀请:
zookzook

zookzook (作者) - hello

只能在 WEB 里特殊处理了,有相同问题的可以参考我的解法。

function hideInWeb() {  
  if (typeof document == 'undefined') {  
    return;  
  }  

  const ele = document.querySelector<HTMLElement>('.uni-tabbar-bottom');  
  if (ele) {  
    ele.style.display = 'none';  
  }  
}  
DCloud_UNI_yuhe

DCloud_UNI_yuhe

非常抱歉我们的更新对你造成不便,我们版本之前对这个位置进行过调整,原因是其它平台与web平台表现不一致,为了拉齐表现才做出调整的(小程序平台只能在tabbar页面调用相关api),更新过后的tabbar相关api只能在tabbar页面中调用,没有其它bug不会改回去了。您的需求可以尝试换一种方式,在Loading之后通过setTabBarItem,来试一下或者是降低版本使用

  • zookzook (作者)

    这种设定本来就很奇怪啊,宽屏的网页显示底部 tabbar 本来就很奇怪,至少要给开发者是否要默认是否要显示 tabbar 的选项,不然 web 总会闪一下底部的 tabbar。你们自己的 demo 网站要怎么处理?以后也不升级了吗

    2024-07-12 13:28

  • 守护

    对于根据角色来判断不能底部导航的App端,简直就是灾难性的。

    本来可以在 App.vue onLanuch 或 onShow 里调用 uni.hideTabbar()先隐藏所有,然后再初始化不同角色的Tabbar数量和地址等,之后再uni.showTabbar();现在只能在tabbar页面中调用,你试想一下,还不知道要首页是那个tabbar的地址,怎么调用tabbar的api。

    2024-07-13 12:01

8***@qq.com

8***@qq.com

// H5隐藏或删除DOM  
// #ifdef H5  
const tabbarEl = document.querySelector('.uni-tabbar-bottom');  
if (tabbarEl) {  
    // tabbarEl.remove(); // 删除  
    tabbarEl.style.display = 'none'; // 隐藏  
}  
// #endif

或者官方也给出了CSS隐藏的办法

.uni-app--showtabbar > .uni-tabbar-bottom {
display: none;
}

要回复问题请先登录注册