鸿蒙Next开发中navigation跳转如何传递多个参数

在鸿蒙Next开发中,使用navigation进行页面跳转时,如何传递多个参数?目前官方文档只展示了传递单个参数的示例,但实际业务中需要传递多个参数(如用户ID、订单号、类型等)。尝试通过Bundle或URI拼接的方式都会报错,请问正确的实现方式是什么?能否提供具体代码示例?

2 回复

鸿蒙Next里传多个参数?简单!用params塞进一个对象里,比如:

router.pushUrl({
  url: 'pages/Detail',
  params: { id: 123, name: '张三', type: 'VIP' }
})

目标页面用router.getParams()一把抓!记住别传敏感数据,会暴露在URL里哦~

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


在鸿蒙Next开发中,使用router进行页面跳转时,可以通过params传递多个参数。以下是具体方法:

1. 传递参数 在源页面使用router.pushUrl()时,在params中设置多个键值对:

import router from '@ohos.router';

// 跳转并传递多个参数
router.pushUrl({
  url: 'pages/DetailPage',
  params: {
    id: 1001,
    name: '张三',
    age: 25,
    category: 'VIP用户'
  }
})

2. 接收参数 在目标页面的onPageShow()生命周期中获取参数:

import router from '@ohos.router';

onPageShow() {
  const params = router.getParams();
  if (params) {
    let id = params['id'];
    let name = params['name'];
    let age = params['age'];
    let category = params['category'];
    
    // 使用获取到的参数
    console.log(`ID: ${id}, 姓名: ${name}, 年龄: ${age}, 类别: ${category}`);
  }
}

注意事项:

  • 参数值支持字符串、数字等基本类型
  • 传递对象时需要先序列化为JSON字符串
  • 参数总长度不宜过大,避免性能问题
  • 建议对关键参数进行非空校验

这种方式简单高效,适合传递中等数量的参数数据。

回到顶部