HarmonyOS 鸿蒙Next 路由跳转获取跳转传参的方式

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 路由跳转获取跳转传参的方式 使用@Consume(‘pageInfos’) pageInfos: NavPathStack;进行路由页面跳转管理时,如A页面跳转B页面this.pageInfos.pushPathByName(‘B’, new Object({yyy: ‘yyy’}));如何在B页面获取传入参数 new Object({yyy: ‘yyy’})?
在非struct @Component声明的ets文件,是否可以获取@Consume(‘pageInfos’) pageInfos: NavPathStack;的全局路由栈类


更多关于HarmonyOS 鸿蒙Next 路由跳转获取跳转传参的方式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

监听函数可以参考以下代码

可以在根组件中监听,或者在指定页面监听也可

根组件监听如下写

@Provide('pageInfos') 
@Watch('pathInfochange') 
pageInfos: NavPathStack = new NavPathStack()

其他页面

@Consume('pageInfos') 
@Watch('pathInfochange') 
pageInfos: NavPathStack;

监听的函数

// 在导航组件里面使用@Wacth监听pathInfo,
pathInfochange() {
console.log('pageInfosChange:' + JSON.stringify(this.pageInfos))
}

注意需要判断pathArray为空的场景,避免数组越界

pageInfosChange:{
"pathArray":[
{"name":"pageOne"},
{"name":"pageTwo","param":{"count":10}},
{"name":"pageOne","param":null},
{"name":"pageTwo","param":{"count":10}},
{"name":"pageOne","param":null},
{"name":"pageTwo","param":{"count":10}},
{"name":"pageOne","param":null}
],
"changeFlag":15,
"isReplace":0,
"type":"NavPathStack",
"disableAllAnimation":false,
"animated":true
}

更多关于HarmonyOS 鸿蒙Next 路由跳转获取跳转传参的方式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,路由跳转并获取跳转传参的方式通常涉及到Intent的使用。Intent在鸿蒙系统中用于组件间通信和数据传递。以下是获取跳转传参的基本方法:

  1. 发送Intent:在源页面通过显式或隐式Intent设置参数,并启动目标页面。显式Intent直接指定目标组件,隐式Intent则通过Action和Category等属性匹配目标组件。

  2. 接收Intent:在目标页面的onStartonActive等生命周期方法中,通过getIntent()方法获取传递过来的Intent对象。

  3. 提取参数:使用Intent对象的getStringgetIntgetBoolean等方法,根据传递参数的类型和键名提取相应的值。

例如,如果传递的是一个字符串类型的参数,可以通过intent.getString("key")来获取。

需要注意的是,确保在发送Intent时设置的键名与接收时使用的键名一致,否则将无法正确提取参数。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部