uniapp底部菜单栏出现在了登录页该怎么办
在uniapp开发中,底部菜单栏出现在了登录页面,导致登录页和菜单栏重叠显示。按照设计本应只在主页显示底部菜单,请问该如何解决这个问题?可能是路由配置或页面生命周期的问题,求解决方法。
        
          2 回复
        
      
      
        在登录页隐藏底部菜单栏。在 pages.json 中,为登录页配置 "tabBar": false 即可。
在 UniApp 中,如果底部菜单栏(tabBar)意外出现在登录页,通常是因为页面路由配置问题。登录页不应属于 tabBar 页面,需检查并调整配置。以下是解决方案:
1. 检查 pages.json 配置
- 在 
pages.json的tabBar部分,list数组应只包含需要显示底部栏的页面。 - 确保登录页 不在 
list中,且登录页的路径未错误添加到 tabBar。 
示例正确配置:
{
  "tabBar": {
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页"
      },
      {
        "pagePath": "pages/user/user",
        "text": "我的"
      }
      // 登录页(如 pages/login/login)不应出现在此处
    ]
  },
  "pages": [
    {
      "path": "pages/login/login",
      "style": {}
    },
    {
      "path": "pages/index/index",
      "style": {}
    }
  ]
}
2. 登录页使用 uni.redirectTo 跳转
- 从登录页跳转到主页时,使用 
uni.redirectTo关闭登录页,避免返回时底部栏残留。 - 示例代码(在登录成功后的逻辑中):
uni.redirectTo({ url: '/pages/index/index' }); 
3. 检查页面路由顺序
- 确保登录页是首个页面(如启动页),或在需要时通过条件判断跳转。
 
4. 隐藏底部栏(临时方案)
- 如果仍需在登录页临时隐藏,可在页面样式或全局样式中添加:
/* 在登录页的 style 中 */ page { padding-bottom: 0 !important; } .uni-tabbar { display: none !important; } - 但此方法不推荐,优先修正路由配置。
 
总结
根本原因是登录页被错误包含在 tabBar 配置中。检查 pages.json,确保登录页路径不在 tabBar.list 内,并正确使用页面跳转方法。无需额外代码,修正配置即可解决。
        
      
                    
                  
                    
