鸿蒙Next中pushpath携带参数和接收方法

在鸿蒙Next中,使用pushpath进行页面跳转时如何携带参数?目标页面应该如何接收这些参数?能否提供一个具体的代码示例来说明参数的传递和接收过程?

2 回复

鸿蒙Next里用pushPath传参?简单!传参时塞进params里:

router.pushPath({
  url: 'pages/Detail',
  params: { id: 123 }
})

接参页面用router.getParams获取:

const params = router.getParams() as { id: number }
console.log(params.id) // 输出123

记住:参数会变成字符串,记得自己转类型哦~

更多关于鸿蒙Next中pushpath携带参数和接收方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next(HarmonyOS NEXT)中,使用pushPath进行页面路由时,可以通过URL参数传递数据,并在目标页面接收参数。以下是详细方法:

1. 传递参数(pushPath携带参数)

使用router.pushPath()方法时,在URL中添加查询参数(query parameters)。例如:

import router from '@ohos.router';

// 传递参数示例
let params = {
  id: '123',
  name: '鸿蒙用户'
};
// 将参数转换为URL查询字符串
let urlParams = new URLSearchParams(params).toString();
router.pushPath({
  url: 'pages/TargetPage', // 目标页面路径
  params: `?${urlParams}`  // 参数以?开头拼接
});

2. 接收参数(目标页面获取参数)

在目标页面的onPageShowonInit生命周期中,通过router.getParams()获取参数:

import router from '@ohos.router';

// 在目标页面中接收参数
onPageShow() {
  let params = router.getParams(); // 获取传递的参数
  if (params) {
    let id = params['id'];       // 获取id参数
    let name = params['name'];   // 获取name参数
    console.log(`ID: ${id}, Name: ${name}`);
  }
}

注意事项:

  • 参数类型:传递的参数会被转换为字符串,复杂对象需序列化(如用JSON.stringify)。
  • 安全性:避免传递敏感数据,参数会暴露在URL中。
  • 路径需在module.json5中正确配置。

通过以上方法,即可在鸿蒙Next中实现页面间参数传递与接收。

回到顶部