鸿蒙Next navigation路由跳转如何获取参数
在鸿蒙Next开发中,使用navigation进行路由跳转时,如何在目标页面获取传递的参数?具体应该调用哪个API或方法?有没有代码示例可以参考?
2 回复
鸿蒙Next里拿路由参数?简单!
在目标页的aboutToAppear里用router.getParams()就行,比如:
const params = router.getParams() as Record<string, string>;
const id = params['id']; // 拿到跳转时传的id
记得跳转时用`router.pushUrl({url: '页面?
更多关于鸿蒙Next navigation路由跳转如何获取参数的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在鸿蒙Next中,可以通过路由参数传递和接收数据,具体方法如下:
1. 传递参数
使用router.pushUrl()时,在params中设置参数:
import router from '@ohos.router';
// 跳转时传递参数
router.pushUrl({
url: 'pages/DetailPage',
params: { id: 123, name: '示例' }
})
2. 接收参数
在目标页面通过router.getParams()获取参数:
import router from '@ohos.router';
// 在目标页面的onPageShow或aboutToAppear中获取
onPageShow() {
const params = router.getParams() as Record<string, Object>;
console.log('接收参数:', params.id, params.name); // 输出:123 和 '示例'
}
3. 完整示例
// 页面A - 传递参数
router.pushUrl({
url: 'pages/DetailPage',
params: {
userId: 'U001',
productId: 'P100'
}
})
// 页面B - 接收参数
onPageShow() {
const params = router.getParams();
if (params) {
let userId = params['userId'] as string;
let productId = params['productId'] as string;
// 使用参数...
}
}
注意事项:
- 参数类型为
Object,使用时需进行类型转换 - 建议在
onPageShow生命周期中获取,确保参数已加载 - 参数通过序列化传递,复杂对象需自行处理
这种方式适用于页面间简单数据传递,如需复杂数据共享建议使用AppStorage。

