8***@qq.com
8***@qq.com
  • 发布:2023-12-18 00:23
  • 更新:2024-11-13 16:02
  • 阅读:848

【报Bug】getCurrentPages() 的options参数问题

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.99

手机系统: Android

手机系统版本号: Android 14

手机厂商: 华为

手机机型: mete60

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

let routes = getCurrentPages();
let currentRoute = routes[routes.length - 1];
var data = {};
// #ifdef H5
currentRoute = currentRoute.$page
// #endif
data = {
route: currentRoute.route,
options: currentRoute.options
}
return data;

操作步骤:

复制 代码示例
会发现 H5下 不直接返回 options参数 要在$page里获取,但是到了小程序里面 并不返回$page里的options参数 要直接获取

预期结果:

统一一下

实际结果:

1

bug描述:

vue2 中
let routes = getCurrentPages();
let currentRoute = routes[routes.length - 1];
route: currentRoute.route,
options: currentRoute.options,
各端都能获取到路由和参数信息,方便储存和做下一步处理。
但是更新到vue3以后
需要和代码示例一样才能获取到。 H5中 已经不再返回 options参数
但是到了小程序端 又不返回 $page参数 ,那这样的话 就非常的不方便,而且心很慌,数据返回的就不统一

2023-12-18 00:23 负责人:YUANRJ 分享
已邀请:

最佳回复

DCloud

DCloud

HBuilderX 4.0.2024012711-alpha 已修复。

DCloud_UNI_GSQ

DCloud_UNI_GSQ

收到,后续会考虑统一暴露 options 属性到 page 对象。

  • 8***@qq.com (作者)

    不要后续,就现在,我弄完我晚上还要和小姐姐吃饭呢。我等你。

    2023-12-18 18:37

coderH

coderH

你都使用 #ifdef H5了
里面使用window.location一样的

  • 8***@qq.com (作者)

    哈哈,我只是演示出来有这么个意思。本来并不需要

    2023-12-19 01:33

w***@163.com

w***@163.com

let page = getCurrentPages()[0];

--小程序写法跟vue2一致,没有问题
let data = page.data;
let options = page.options;

--app端需要这样写才行
let data = page.$vm.$data;
let options = page.$page.options;

我用的是4.29版本。
太痛苦了,没有文档可查。只能猜测尝试。

要回复问题请先登录注册