uni-app中uni.switchTab跳转显示异常
uni-app中uni.switchTab跳转显示异常
| 开发环境 | 版本号 | 项目创建方式 | 
|---|---|---|
| Windows | win11 | |
| HBuilderX | 4.01 | 
示例代码:
pages.json:
{
    "pages": [
        {
            "path": "pages/login/login",
            "style": {
                "navigationStyle": "custom",
                "enablePullDownRefresh": false
            }
        },
        {
            "path": "pages/tabbar/tabbar1",
            "style": {
                "navigationStyle": "custom",
                "enablePullDownRefresh": false
            }
        }
        //......
    ]
}
跳转代码:
uni.switchTab({
    url: '/pages/tabbar/tabbar1',
})
操作步骤:
- 点击登录按钮调用uni.switchTab跳转到APP主页面
预期结果:
- 从登录页自然过渡到主界面
实际结果:
- 先回到手机屏幕页后停顿一会再打开App主界面
bug描述:
- 从登录页调用uni.switchTab({ url: ‘/pages/tabbar/tabbar1’,})跳转到主页面时应用会先退回到手机屏幕然后再显示APP主页面
更多关于uni-app中uni.switchTab跳转显示异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
        
          8 回复
        
      
      
        感谢反馈,已知问题,4.02版本已修复。
更多关于uni-app中uni.switchTab跳转显示异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
uni.switchTab还存在一些问题。例如,我从首页进入一个商品详情,然后点击商品页面的购物车图标,通过uni.switchTab跳转到购物车页面(购物车页面和首页同级都在tabbar里),页面不会跳转到购物车页面,而是快速闪动一次白色,然后跳转到首页。其他方式进入商品页面,点击购物车跳转则正常。
我测试了开发软件的现有的3.99正式版本和测试版本,都存在这个问题。
发生这个问题是我开发小程序时。
Thanks♪(・ω・)ノ
首次switchTab跳首页空白,清除后台后正常,使用uni.reLaunch正常
貌似是uni.showToast引起的
在 uni-app 中使用 uni.switchTab 跳转时,如果出现显示异常,可能是由于以下几个原因导致的。以下是一些常见的排查和解决方法:
1. 页面路径配置问题
- uni.switchTab只能跳转到在- pages.json中配置为- tabBar的页面。
- 确保跳转的页面路径在 pages.json的tabBar配置中正确声明。
示例:
{
  "tabBar": {
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页"
      },
      {
        "pagePath": "pages/user/user",
        "text": "用户"
      }
    ]
  }
}
错误示例:
// 如果跳转的页面不是 tabBar 页面,会导致异常
uni.switchTab({
  url: '/pages/other/other' // 如果 other 页面不是 tabBar 页面,会报错
});
2. 跳转路径格式问题
- uni.switchTab的- url参数必须以- /开头,且路径必须与- pages.json中的- pagePath完全一致。
- 确保路径没有拼写错误。
正确示例:
uni.switchTab({
  url: '/pages/index/index'
});
错误示例:
uni.switchTab({
  url: 'pages/index/index' // 缺少开头的斜杠
});
3. 页面生命周期问题
- uni.switchTab跳转时会触发目标页面的生命周期函数(如- onShow、- onHide)。
- 如果目标页面的生命周期函数中有异常代码(如未定义的变量或方法),可能会导致页面显示异常。
排查方法:
- 检查目标页面的生命周期函数,确保没有报错。
- 可以使用 try-catch捕获异常。
4. 页面缓存问题
- uni.switchTab跳转时,目标页面会从缓存中加载。如果页面数据未及时更新,可能会导致显示异常。
- 可以在目标页面的 onShow生命周期中进行数据刷新。
示例:
onShow() {
  this.loadData(); // 在页面显示时刷新数据
}
5. 异步操作问题
- 如果 uni.switchTab跳转前有异步操作(如网络请求),可能会导致跳转时页面还未准备好。
- 确保跳转前所有异步操作已完成。
示例:
async function navigateToTab() {
  await someAsyncFunction(); // 等待异步操作完成
  uni.switchTab({
    url: '/pages/index/index'
  });
} 
        
       
                     
                   
                    

