uni-app 使用uni.switchTab切换uni.preloadPage预热的页面后 点击其他tab时页面不切换

uni-app 使用uni.switchTab切换uni.preloadPage预热的页面后 点击其他tab时页面不切换

开发环境 版本号 项目创建方式
Windows win10 HBuilderX

示例代码:

onLoad() {  
    uni.preloadPage({  
        url: "main"  
    })  
    this.autoLogin()  
}

操作步骤:

以上代码

预期结果:

点击tab时切换页面

实际结果:

不切换页面

bug描述:

login.vue 使用uni.preloadPage,预加载main.nvue页面。然后使用uni.switchTab自动跳转到main.nvue,此时点击Tabbar上的其他tab时,页面不切换,还停留在main.nvue页面。手动点回去又正常了


更多关于uni-app 使用uni.switchTab切换uni.preloadPage预热的页面后 点击其他tab时页面不切换的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

遇到同样问题

更多关于uni-app 使用uni.switchTab切换uni.preloadPage预热的页面后 点击其他tab时页面不切换的实战教程也可以访问 https://www.itying.com/category-93-b0.html


同样问题请请问解决啦嘛

测试发现是uni统计造成的。。。

这是一个uni-app中预加载页面与tabbar切换的常见问题。问题原因在于uni.preloadPage和uni.switchTab的交互存在一些限制。

解决方案:

  1. 最简单的方法是移除uni.preloadPage调用,因为tabbar页面本身就有预加载机制。

  2. 如果必须保留预加载,可以改用setTimeout延迟执行switchTab:

onLoad() {
    uni.preloadPage({
        url: "main"
    });
    setTimeout(() => {
        uni.switchTab({
            url: "main"
        });
    }, 300);
    this.autoLogin();
}
  1. 或者改用reLaunch代替switchTab:
uni.reLaunch({
    url: "main"
});
回到顶部