uni-app 最新版4.31 nvue 页面返回后会清空页面堆栈 导致整个应用不能使用
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 |
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>
解决思路
-
检查堆栈管理:
- 确保在调用
uni.navigateTo
或uni.redirectTo
时,堆栈管理符合预期。使用uni.navigateBack
应该能够正确返回到上一个页面,而不是清空整个堆栈。
- 确保在调用
-
使用全局状态管理:
- 如果堆栈被意外清空,考虑使用Vuex或uni-app的全局状态管理来跟踪页面堆栈。这可以通过在每次页面跳转时更新一个全局状态变量来实现。
-
监听页面生命周期:
- 在页面的
onLoad
、onShow
、onHide
等生命周期钩子中添加日志,以帮助诊断堆栈何时被清空。
- 在页面的
-
自定义返回逻辑:
- 如果
uni.navigateBack
不满足需求,考虑实现自定义的返回逻辑,例如使用全局事件总线或Vuex actions来管理页面之间的跳转。
- 如果
-
查阅文档和社区:
- 查阅uni-app的官方文档和社区论坛,看看是否有其他开发者遇到并解决了类似的问题。
-
回退版本:
- 如果问题是由4.31版本引入的,考虑暂时回退到之前的稳定版本,同时向uni-app的开发团队报告此问题。
由于问题涉及具体的uni-app版本和可能的bug,上述代码和思路仅作为一般性的参考。实际解决方案可能需要根据具体的应用场景和代码库进行调整。