router路由中的params对象

function onJumpClick(): void {  
  // 在Home页面中  
  let paramsInfo: DataModel = {  
    id: 123,  
    info: {  
      age: 20  
    }  
  };  
  
  router.pushUrl({  
    url: 'pages/Detail', // 目标url  
    params: paramsInfo // 添加params属性,传递自定义参数  
  }, (err) => {  
    if (err) {  
      console.error(`Invoke pushUrl failed, code is ${err.code}, message is ${err.message}`);  
      return;  
    }  
    console.info('Invoke pushUrl succeeded.');  
  })  
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

该代码我要封装到一个工具类中,工具类中是各种跳转页面的方法,我们要如何实现只创建一个实体类的情况下,实现工具类中的不同方法传递param的时候,我可以传递类的不同属性比如工具类有A和B方法,但是我A方法param传递的是类的a属性,B方法传递的是类的b属性,但是我只想创建一个实体类,这样能实现吗?

HarmonyOS
2024-09-30 10:27:46
964浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

传递的参数是以对象的形式,则接收时可以通过router.getParams() as PageParam的形式。

params: {  
  pageUrl: pageUrl,  
  title: title,  
  subTitle: subTitle,  
  userToken: userToken,  
  toAppKey: toAppKey,  
  releaseScope: releaseScope,  
  iconUrl: iconUrl,  
  logType: logType,  
  ifSso: iSso  
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

若传递的参数是对象字面量的key-value的的形式,则可以通过类似。

@State pageUrl: string = (router.getParams() as Record<string, string>)['pageUrl']
  • 1.

的形式接收参数。

分享
微博
QQ
微信
回复
2024-09-30 16:48:39


相关问题
HarmonyOS router路由管理
588浏览 • 1回复 待解决
HarmonyOS router路由路径问题
1110浏览 • 1回复 待解决
router 路由跳转相关问题
1203浏览 • 1回复 待解决
HarmonyOS router路由跳转问题
1453浏览 • 0回复 待解决
如何实现router命名路由跳转
2066浏览 • 1回复 待解决
路由导航用router还是navigation?
330浏览 • 1回复 待解决
Router传递Object对象解读
2229浏览 • 1回复 待解决