uni-app 最新版4.31 nvue 页面返回后会清空页面堆栈 导致整个应用不能使用

发布于 1周前 作者 itying888 来自 Uni-App

uni-app 最新版4.31 nvue 页面返回后会清空页面堆栈 导致整个应用不能使用

操作步骤:

  • nvue 页面返回

预期结果:

  • 正在返回到上一级

实际结果:

  • 直接返回到首页,而且点击页面也没有反应

bug描述:

  • nvue 页面返回后会清空页面堆栈,导致整个应用不能使用
项目信息 详情
产品分类 uniapp/App
PC开发环境操作系统 Mac
PC开发环境操作系统版本号 13.5 (22G74)
HBuilderX类型 正式
HBuilderX版本号 4.31
手机系统 Android
手机系统版本号 Android 12
手机厂商 华为
手机机型 P40
页面类型 nvue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

7 回复

HBuilderX 4.32.2024110103-alpha 已修复。


HBuilderX 4.35.2024112402-alpha 鸿蒙系统依然有此问题

我使用 4.31 运行到安卓真机,运行 hello uniapp x 工程的页面跳转功能正常
具体说明下操作方式,提供一个复现工程吧。HBuilderX 版本是多少,如果是 a b 两个页面使用,如何跳转的?返回上一级是如何操作的?新建空白 hello uni-app 的demo 是否可以复现问题?

这个问题是我昨晚更新到最新 alpha 版本使用云打包出现的,现在我返回用正式版打包。我的项目不是uni-app x,而是之前的 uni-app 项目,混合vue + nvue,nvue 是使用系统默认返回,没有添加自定义的返回。弄一个复现工程有点麻烦,我还得重新下载 hbuild alpha版本,我的页面结构是假设 a.vue 为首页,b.vue为二级页面, c.nvue 为三级,打开路径 a -> b -> c。然后在 c.nvue 左滑返回,正常是回到 b,现在是直接回到首页,然后应用不能点击,没有反应。我觉得是清空页面堆栈

回复 工程狮: 好,我同事会跟进此问题

问题确认,感谢反馈,已加分

在uni-app最新版本4.31中,关于nvue页面返回后会清空页面堆栈的问题,这通常涉及到页面导航和堆栈管理。为了帮助你理解和解决这个问题,下面提供一个简单的代码示例,展示如何在nvue页面中进行页面跳转和管理堆栈。同时,我们会讨论一些可能的解决方案思路,尽管由于具体实现细节可能不同,这些代码不能直接解决你的问题,但可以作为参考和起点。

示例代码

页面A (nvue)

<template>
  <div>
    <button @click="navigateToPageB">Go to Page B</button>
  </div>
</template>

<script>
export default {
  methods: {
    navigateToPageB() {
      uni.navigateTo({
        url: '/pages/pageB/pageB.nvue'
      });
    }
  }
}
</script>

页面B (nvue)

<template>
  <div>
    <button @click="backToPageA">Back to Page A</button>
  </div>
</template>

<script>
export default {
  methods: {
    backToPageA() {
      uni.navigateBack();
    }
  }
}
</script>

解决思路

  1. 检查堆栈管理

    • 确保在调用uni.navigateTouni.redirectTo时,堆栈管理符合预期。使用uni.navigateBack应该能够正确返回到上一个页面,而不是清空整个堆栈。
  2. 使用全局状态管理

    • 如果堆栈被意外清空,考虑使用Vuex或uni-app的全局状态管理来跟踪页面堆栈。这可以通过在每次页面跳转时更新一个全局状态变量来实现。
  3. 监听页面生命周期

    • 在页面的onLoadonShowonHide等生命周期钩子中添加日志,以帮助诊断堆栈何时被清空。
  4. 自定义返回逻辑

    • 如果uni.navigateBack不满足需求,考虑实现自定义的返回逻辑,例如使用全局事件总线或Vuex actions来管理页面之间的跳转。
  5. 查阅文档和社区

    • 查阅uni-app的官方文档和社区论坛,看看是否有其他开发者遇到并解决了类似的问题。
  6. 回退版本

    • 如果问题是由4.31版本引入的,考虑暂时回退到之前的稳定版本,同时向uni-app的开发团队报告此问题。

由于问题涉及具体的uni-app版本和可能的bug,上述代码和思路仅作为一般性的参考。实际解决方案可能需要根据具体的应用场景和代码库进行调整。

回到顶部