HarmonyOS 鸿蒙Next router怎么实现har内2个页面之间跳转传参

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

HarmonyOS 鸿蒙Next router怎么实现har内2个页面之间跳转传参

类型har,A页面,B页面,A跳转B怎么跳转 

2 回复
使用const module = import('har3/ets/components/Index3')引入har另一待跳转页面,即可跳转 参考har包内页面代码如下:
import { router } from '[@kit](/user/kit).ArkUI';
import { BusinessError } from '[@kit](/user/kit).BasicServicesKit';

//这个有必要,引入har另一待跳转页面
const module = import('har3/ets/components/Index3')

[@Component](/user/Component)
[@Entry](/user/Entry)({routeName:'Index2'})
export struct Index2 {
[@State](/user/State) message: string = '这是Har3的Index2页面';

build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
.onClick(() => {
try {
router.pushNamedRoute({
name: 'Index3',
})
} catch (err) {
let message = (err as BusinessError).message
let code = (err as BusinessError).code
console.error(`pushNamedRoute failed, code is ${code}, message is ${message}`);
}
})
}
.width('100%')
}
.height('100%')
}

Index3.ets(相当于B页面)
import { router } from '[@kit](/user/kit).ArkUI';

[@Component](/user/Component)
[@Entry](/user/Entry)({ routeName: 'Index3' })
export struct Index3 {
[@State](/user/State) message: string = '这是Har3的Index3页面';

build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)

Button('back').onClick(() => {
router.back()
})
}
.width('100%')
}
.height('100%')
}
}

}

更多关于HarmonyOS 鸿蒙Next router怎么实现har内2个页面之间跳转传参的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,Next router实现har内两个页面之间跳转传参,可以通过Intent机制来实现。

具体步骤如下:

  1. 创建Intent:在源页面,创建一个Intent对象,并调用其putExtra方法将要传递的参数放入Intent中。例如,如果要传递一个字符串参数,可以使用putExtra(String name, String value)方法。

  2. 启动目标页面:使用startAbility方法并传入前面创建的Intent,以启动目标页面。这样,Intent中携带的参数就会被传递给目标页面。

  3. 在目标页面接收参数:在目标页面的onStartonActive等生命周期方法中,通过调用getIntent()方法获取传递过来的Intent,然后调用Intent的getStringExtra(或其他相应的getExtra方法,根据传递的参数类型)来获取参数值。

示例代码(伪代码):

源页面:

let intent = new Intent();
intent.putExtra("key", "value");
startAbility(intent);

目标页面:

onStart() {
    let intent = this.getIntent();
    let value = intent.getStringExtra("key");
    // 使用value
}

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

回到顶部