HarmonyOS 使用系统路由表时如何传递参数对象?

请问在使用系统路由表时,如何传递对象类型的参数?如何接收参数?有没有demo?有没有参数收发相关的文档?

HarmonyOS
2024-12-26 14:36:20
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
shlp

请参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-navigation-V5#示例7

1.传入参数:

let p = new PageParam(1);
this.stack.pushPath({ name: "pageOne", param: p })
  • 1.
  • 2.

在前一个界面的pushPath的param传入参数。可自定义对象,本例子里为PageParam。

2.接收参数:

NavDestination() {
}.onReady((ctx: NavDestinationContext) => {
  // 在NavDestination中能够拿到传来的NavPathInfo和当前所处的NavPathStack
  try {
    this.name = ctx?.pathInfo?.name;
    this.paramNum = (ctx?.pathInfo?.param as PageParam)?.num;
    this.stack = ctx.pathStack;
  } catch (e) {
    console.log(`testTag onReady catch exception: ${JSON.stringify(e)}`)
  }
})
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

在后面一个界面的onReady方法中通过 ctx?.pathInfo?.param 获取到前个页面传入的param,通过as 指定类型即可。

ctx?.pathInfo?.param as PageParam.

分享
微博
QQ
微信
回复
2024-12-26 16:44:20
相关问题
自定义路由表的实现方法
987浏览 • 1回复 待解决
HarmonyOS 对象作为参数传递时方法丢失
1210浏览 • 1回复 待解决
HTTP GET请求如何传递参数
4129浏览 • 1回复 待解决