uni-app中getCurrentPages is not a function
uni-app中getCurrentPages is not a function
信息类别 | 详细信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC版本号 | Windows 10 22H2 |
HBuilderX | 正式 |
HBuilderX版本号 | 4.08 |
手机系统 | Android |
手机版本号 | Android 14 |
手机厂商 | 模拟器 |
手机机型 | 模拟器 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 离线 |
项目创建方式 | HBuilderX |
示例代码:
onLoad() {
this.pagesList = getCurrentPages();
console.log('pagesList', this.pagesList);
},
操作步骤:
直接运行
预期结果:
获取当前页列表实例
实际结果:
js报错:getCurrentPages is not a function
bug描述:
uniapp默认模板创建的项目中不管是把pages/index/index改成.vue或.nvue运行安卓模拟器后,代码中调用getCurrentPages都回报错getCurrentPages is not a function,我换了好几个模拟器都一样出错。
更多关于uni-app中getCurrentPages is not a function的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更新:最新的 HBuilderX alpha 4.26 已解决此问题。
之前提供的替换文件不完整,导致 HBuilderX 正式版还会有问题,在下个版本发布之前,请参考下面解决方案。
到HBX根目录 /Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-debugger/node_modules/@dcloudio/uni-debugger/frontend/public/runtime
替换如下文件
备注
vue3+cli 项目,请替换项目依赖 node_modules
vue3+HBuilderX 项目,找到HBuilderX的根目录,快速找到HBuilderX根目录的方式,帮助–>自述文件。 然后在右键选择 ,在外部资源管理器打开,即可打开HBuilderX路径。
更多关于uni-app中getCurrentPages is not a function的实战教程也可以访问 https://www.itying.com/category-93-b0.html
uniapp VUE3 setup组合式写法 真机调试也报 getCurrentPages is not a function !控制台没有报错 ,控制台点真机调试报错。
cli创建的如何解决呢,现在还是有这个问题
cli的项目替换完文件也不行,还是报错
4.15正式版依旧有这个问题
此解决方案,不可用呀
回复 1***@qq.com: 升级最新HBuilderX Alpha版本试试。
Alpha版本 可以了
正式版本4.24 还是有这个问题
回复 2***@qq.com: 同 4.24,今天刚从 3.99 升级过来,问题仍然存在
回复 2***@qq.com: 我发现调试模式下,getApp 才是真正的 getCurrentPages
回复 2***@qq.com:
回复 8***@qq.com: 你好,之前回复内容不完整,我重新补充了内容。经过测试 HBuilderX 4.24 运行vue2/vue3+options/vue3+setup 都正常,请参考说明重新试一下,下个版本会修复此问题。
回复 c***@gmail.com: 你好,之前回复内容不完整,我重新补充了内容。经过测试 HBuilderX 4.24 运行vue2/vue3+options/vue3+setup 都正常,请参考说明重新试一下,下个版本会修复此问题。
回复 9***@qq.com: 你好,之前回复内容不完整,我重新补充了内容。经过测试 HBuilderX 4.24 运行vue2/vue3+options/vue3+setup 都正常,请参考说明重新试一下,下个版本会修复此问题。
回复 7***@qq.com: 你好,之前回复内容不完整,我重新补充了内容。经过测试 HBuilderX 4.24 运行vue2/vue3+options/vue3+setup 都正常,请参考说明重新试一下,下个版本会修复此问题。
回复 2***@qq.com: 你好,之前回复内容不完整,我重新补充了内容。经过测试 HBuilderX 4.24 运行vue2/vue3+options/vue3+setup 都正常,请参考说明重新试一下,下个版本会修复此问题。
回复 2***@qq.com: 你好,之前回复内容不完整,我重新补充了内容。经过测试 HBuilderX 4.24 运行vue2/vue3+options/vue3+setup 都正常,请参考说明重新试一下,下个版本会修复此问题。
直接输出日志里的确没问题,但是打开调试工具回报这个错误,难道是调试工具有问题
你好,之前回复内容不完整,我重新补充了内容。经过测试 HBuilderX 4.24 运行vue2/vue3+options/vue3+setup 都正常,请参考说明重新试一下,下个版本会修复此问题。
感谢反馈,目前通过你的提供的信息调试过后在调试工具下确实复现了该问题
在输出日志里的确没问题,但是打开调试工具回报这个错误,难道是调试工具有问题
我也遇到了,nvue调试就会出现这个问题TypeError: getCurrentPages is not a function
解决了,降低hbuildx版本就好了,之前用的是4.08,现在回到了3.9.4,也许其他低版本也行
你好,之前回复内容不完整,我重新补充了内容。经过测试 HBuilderX 4.24 运行vue2/vue3+options/vue3+setup 都正常,请参考说明重新试一下,下个版本会修复此问题。
5.23还是有这个问题
你好,之前回复内容不完整,我重新补充了内容。经过测试 HBuilderX 4.24 运行vue2/vue3+options/vue3+setup 都正常,请参考说明重新试一下,下个版本会修复此问题。
咋解决的呀,我这个也是出现这问题呢
这个问题还没有解决吗
升级最新版的Alpha版
这个问题 开启调试工具 时候 app调试开启的时候 也是这样的报错
你好,之前回复内容不完整,我重新补充了内容。经过测试 HBuilderX 4.24 运行vue2/vue3+options/vue3+setup 都正常,请参考说明重新试一下,下个版本会修复此问题。
最新版任然有这个问题
你好,你的getCurrentPage()在哪个平台用的?vue2还是vue3?
回复 DCloud_UNI_yuhe: vue2
回复 xiaom873938838: 你好,你是在哪个位置使用的,可以私信发一个能复现的项目吗?
vue2代码,mac上运行在iOS的模拟器上,还是Android真机都有问题
你好,可以私信我发一个可以复现的项目吗?
回复 DCloud_UNI_yuhe: 开源项目, https://gitee.com/ZhongBangKeJi/crmeb_java/tree/master/app
回复 h***@yeah.net: 您好,在哪里可以复现?
回复 DCloud_UNI_yuhe: 直接运行token验证失败要跳到登录就会
你好,之前回复内容不完整,我重新补充了内容。经过测试 HBuilderX 4.24 运行vue2/vue3+options/vue3+setup 都正常,请参考说明重新试一下,下个版本会修复此问题。
4.24 问题仍然存在,四个月了!!!
你好,你是在哪里出现的这个问题?提供一个可以复现的项目
回复 DCloud_UNI_yuhe: 跟工程没关系吧,发现调试模式下 global.getApp 和 global.getCurrentPages 对调了。你发的wrapper.js 和我本地的文件是一致的。 有没有可能是老版本 HbuilderX 3.99 缓存的问题? 试试先清除缓存后再重装 HbuilderX?
回复 2***@qq.com: 如果不能复现问题,我们也不好修复。您可以尝试一下重装hx
回复 DCloud_UNI_yuhe: 完全删干净后还是一样,我建了新项目,uniapp 模板+vue3,再 man.js 里打印 getCurrentPages,getApp 的结果是: {on: ƒ, once: ƒ, off: ƒ, emit: ƒ, subscribe: ƒ, …} ƒ Wo(){let e=[];return Oi.forEach(t=>{t.$.isTabBar?t.$.isActive&&e.push(t):e.push(t)}),e} “uni-app:///main.js:40” 前面的是 getApp,后面的是 getCurrentPages !!!注意,是调试模式,这里不能发图片,看我后面发的图片,
回复 2***@qq.com: 你好,你的意思就是说,原本是getCurrentPages的地方换成了getApp,导致出现了not a function这个错误?
回复 DCloud_UNI_yuhe: 调试模式下,global.getCurrentPages 和 global.getApp 互换了。你看我后面的发的留言,有测试过程截图 也就是说在 main.js 中加入下面的代码,并且将所有 getCurrentPages 改为 global.getCurrentPages 才能正常运行 if (typeof global.getCurrentPages !== ‘function’) {
}
完全删干净后还是一样,我建了新项目,uniapp 模板+vue3,再 man.js 里打印 getCurrentPages,getApp 的结果是:
{on: ƒ, once: ƒ, off: ƒ, emit: ƒ, subscribe: ƒ, …}
ƒ Wo(){let e=[];return Oi.forEach(t=>{t.$.isTabBar?t.$.isActive&&e.push(t):e.push(t)}),e} “uni-app:///main.js:40”
前面的是 getApp,后面的是 getCurrentPages
!!!注意,是调试模式,这里不能发图片,看我后面发的图片,
1 秒前
特别感谢认真排查
你好,之前回复内容不完整,我重新补充了内容。经过测试 HBuilderX 4.24 运行vue2/vue3+options/vue3+setup 都正常,请参考说明重新试一下,下个版本会修复此问题。
回复 DCloud_UNI_OttoJi: 那就不知道是什么问题咯,我是 mac OS,HbuildX4.24,真机是 iPhone 12,我在 main.js 里重新赋值了 global.getApp和 global.getCurrentPages 临时解决了。
回复 2***@qq.com: 看最新的置顶评论操作
最新版本问题仍然存在
你好,之前回复内容不完整,我重新补充了内容。经过测试 HBuilderX 4.24 运行vue2/vue3+options/vue3+setup 都正常,请参考说明重新试一下,下个版本会修复此问题。
macos HBuilderX 4.24 还是存在这个问题啊,不开调试没问题,一开调试就报这个……
你好,是 4.26 处理的,请使用高于 4.26 的版本,目前在 alpha 上存在
哦,我就说更新了之后调试页面的console里面打印这个函数提示没有呢
在 uni-app
中,getCurrentPages
是一个用于获取当前页面栈的函数。如果你遇到 getCurrentPages is not a function
的错误,可能是由于以下几个原因:
1. 调用时机不正确
getCurrentPages
只能在页面生命周期内调用,比如在 onLoad
、onShow
、onReady
等生命周期函数中调用。如果你在非页面生命周期中调用(例如在组件的 created
或 mounted
中),可能会导致这个错误。
解决方法:
确保在页面生命周期内调用 getCurrentPages
。
export default {
onLoad() {
const pages = getCurrentPages();
console.log(pages);
}
}
2. 运行环境问题
getCurrentPages
是 uni-app
提供的方法,只能在 uni-app
的运行环境中使用。如果你在非 uni-app
环境(例如普通的 H5 页面)中调用,可能会出现这个错误。
解决方法:
确保代码运行在 uni-app
的环境中。
3. 版本问题
如果你使用的是较旧版本的 uni-app
,可能会存在 getCurrentPages
方法不可用的情况。
解决方法:
更新 uni-app
到最新版本。
4. 使用方式错误
确保你正确使用了 getCurrentPages
方法。getCurrentPages
是一个全局方法,不需要通过 this
调用。
正确用法:
const pages = getCurrentPages();
console.log(pages);