鸿蒙Next navigation pushpathbyname 如何传参

在鸿蒙Next开发中,使用navigation的pushPathByName进行页面跳转时,应该如何传递参数?能否提供具体的参数传递示例和注意事项?

2 回复

鸿蒙Next里用pushPathByName传参?简单!把参数塞进params对象里,像这样:

router.pushPathByName({
  name: '目标页',
  params: { key: '值' }
})

目标页用router.getParams()就能拿到参数。注意别传复杂对象,小心被序列化坑到!

更多关于鸿蒙Next navigation pushpathbyname 如何传参的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next中,使用 navigation.pushPathByName() 传递参数可以通过以下步骤实现:

  1. 定义参数:将需要传递的参数放入一个对象中。
  2. 调用方法:使用 pushPathByName 并传入目标页面的名称和参数对象。

示例代码:

import { navigation } from '@kit.ArkUI';

// 传递参数到目标页面
let params = {
  id: 123,
  name: '示例名称'
};

navigation.pushPathByName({
  name: '目标页面名称', // 替换为实际页面名称
  params: params
});

在目标页面接收参数:

在目标页面的 aboutToAppear 生命周期方法中获取参数:

import { navigation } from '@kit.ArkUI';

@Entry
@Component
struct TargetPage {
  @State id: number = 0;
  @State name: string = '';

  aboutToAppear() {
    const params = navigation.getParams(); // 获取传递的参数
    if (params) {
      this.id = params['id'] || 0;
      this.name = params['name'] || '';
    }
  }

  build() {
    // 使用 this.id 和 this.name
  }
}

注意事项:

  • 确保目标页面名称在 main_pages.json 中正确定义。
  • 参数对象会被序列化,因此避免传递复杂对象(如函数或循环引用结构)。

这样即可在鸿蒙Next中通过 pushPathByName 传递和接收参数。

回到顶部