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

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

HarmonyOS
21h前
浏览
收藏 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 })

在前一个界面的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)}`)
  }
})

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

ctx?.pathInfo?.param as PageParam.

分享
微博
QQ
微信
回复
19h前
相关问题
自定义路由表的实现方法
470浏览 • 1回复 待解决
HTTP GET请求如何传递参数
3201浏览 • 1回复 待解决