uni-app uni.preloadPage预加载的tabbar页面在进入页面后tabbar会消失

uni-app uni.preloadPage预加载的tabbar页面在进入页面后tabbar会消失

测试过的手机

安卓和IOS都是一样

示例代码

// uni.preloadPage({url: "/pages/home/home?a=0"});  
// uni.preloadPage({url: "/pages/setting/setting?a=2"});
```

## 操作步骤

// uni.preloadPage({url: “/pages/home/home?a=0”});
// uni.preloadPage({url: “/pages/setting/setting?a=2”});

此处只是示例,在tabbar的第一个界面写预加载setting,则setting的tabbar消失

## 预期结果
预期应当是tabbar正常显示

## 实际结果
目前是经过预加载的页面没有tabbar,即便是调用uni.showTabBar也无用

## bug描述
页面类型目前是nvue,vue没有测过

更多关于uni-app uni.preloadPage预加载的tabbar页面在进入页面后tabbar会消失的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

已复现,感谢反馈,正在查看出错原因

更多关于uni-app uni.preloadPage预加载的tabbar页面在进入页面后tabbar会消失的实战教程也可以访问 https://www.itying.com/category-93-b0.html


23年就有人提了bug确认了,这个是24年提的,现在是2025了大佬,是把用户解决了吧

请问解决了吗

在uni-app中使用uni.preloadPage预加载tabbar页面时,有时会遇到进入预加载页面后tabbar消失的问题。这通常是由于页面加载和渲染顺序导致的。为了确保tabbar在预加载页面后仍然正常显示,可以通过一些编程技巧来确保tabbar的渲染。

以下是一个可能的解决方案,该方案主要通过确保tabbar页面在加载时正确触发相关的生命周期函数来实现。假设我们有一个tabbar页面pages/home/home,我们将预加载这个页面。

1. 配置tabbar

首先,在pages.json中正确配置tabbar页面:

{
  "tabBar": {
    "list": [
      {
        "pagePath": "pages/home/home",
        "text": "首页"
      },
      // 其他tabbar项
    ]
  },
  "pages": [
    {
      "path": "pages/home/home",
      "style": {
        "navigationBarTitleText": "首页"
      }
    },
    // 其他页面
  ]
}

2. 预加载页面

在应用的入口文件(如App.vueonLaunchonShow生命周期函数中)预加载页面:

export default {
  onLaunch() {
    // 预加载tabbar页面
    uni.preloadPage({
      url: '/pages/home/home'
    });
  },
  // 其他生命周期函数
}

3. 确保tabbar显示

为了确保tabbar在预加载后显示,可以在pages/home/home.vueonLoadonShow生命周期函数中做一些处理,虽然通常不需要额外的代码,但可以通过日志输出检查页面的加载状态:

<template>
  <view>
    <!-- 页面内容 -->
  </view>
</template>

<script>
export default {
  onLoad() {
    console.log('Home page loaded');
    // 可以在这里做一些初始化操作,确保tabbar显示
  },
  onShow() {
    console.log('Home page shown');
    // 如果需要,可以在这里再次检查或设置tabbar状态
  }
}
</script>

注意事项

  • 确保uni.preloadPage的调用是在应用启动时尽早进行,以避免页面加载时的延迟导致的问题。
  • 如果预加载的页面有复杂的初始化逻辑,确保这些逻辑不会导致页面渲染被阻塞,从而影响到tabbar的显示。
  • 如果问题依旧存在,可以尝试检查是否有其他样式或脚本影响到tabbar的显示,或者查看uni-app的官方文档和社区,看是否有相关的已知问题或更新。
回到顶部