uni-app 最新版本的HBuilder X正式版,通过app真机调试发现,getCurrentPages不再是一个函数,而是一个对象,且里面没有页面相关信息

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

uni-app 最新版本的HBuilder X正式版,通过app真机调试发现,getCurrentPages不再是一个函数,而是一个对象,且里面没有页面相关信息

项目 信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 Windows 11 23H2
HBuilderX类型 正式
HBuilderX版本号 4.07
手机系统 Android
手机系统版本号 Android 14
手机厂商 小米
手机机型 redmi K50
页面类型 vue
vue版本 vue3
打包方式 离线
项目创建方式 HBuilderX

操作步骤:

HBuilder X升级后,getCurrentPages不是一个函数,无法获取到当前页面信息,退回3.99版本后则正常,运行方式:真机调试

预期结果:

getCurrentPages应当是一个函数

实际结果:

HBuilder X升级后,getCurrentPages不是一个函数,无法获取到当前页面信息,退回3.99版本后则正常,运行方式:真机调试

bug描述:

HBuilder X升级后,getCurrentPages不是一个函数,无法获取到当前页面信息,退回3.99版本后则正常,运行方式:真机调试


5 回复

编辑器升级到4.08试一下

回复 困难总比办法多: 升级到3.99了

升级到了Alpha 版本之后就没有这个问题了。

uni-app 的最新版本中,getCurrentPages 的行为可能发生了变化。根据你的描述,getCurrentPages 不再是一个函数,而是一个对象,并且里面没有页面相关信息。这可能是由于 uni-app 框架的更新或某些配置问题导致的。

以下是一些可能的解决方案和排查步骤:


1. 检查 uni-app 版本

确保你使用的是最新的 uni-app 版本,并且与 HBuilder X 的版本兼容。可以通过以下命令检查 uni-app 版本:

npm list @dcloudio/uni-app

如果版本过旧,可以尝试更新:

npm update @dcloudio/uni-app

2. 检查 HBuilder X 版本

确保你使用的是最新版本的 HBuilder X。可以通过 HBuilder X 的菜单栏检查更新:

菜单栏 -> 帮助 -> 检查更新


3. 检查运行环境

getCurrentPages 的行为可能在不同的运行环境下有所不同。确保你在正确的环境下调试(如微信小程序、H5、App 等)。可以通过以下代码检查当前运行环境:

console.log(process.env.UNI_PLATFORM);

4. 确认 getCurrentPages 的用法

uni-app 中,getCurrentPages 是一个全局函数,用于获取当前页面栈。正确的用法如下:

const pages = getCurrentPages(); // 获取页面栈
const currentPage = pages[pages.length - 1]; // 获取当前页面实例
console.log(currentPage);

如果你发现 getCurrentPages 是一个对象而不是函数,可能是由于某些特殊的运行环境或框架的改动。


5. 尝试使用 uni.getCurrentPages

在某些情况下,uni-app 提供了 uni.getCurrentPages 作为 getCurrentPages 的别名。你可以尝试使用:

const pages = uni.getCurrentPages();
console.log(pages);

6. 检查页面生命周期

确保你在正确的生命周期钩子中调用 getCurrentPages。例如,在 onLoadonShow 中调用:

export default {
  onLoad() {
    const pages = getCurrentPages();
    console.log(pages);
  },
};
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!