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.');  
  })  
}

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

HarmonyOS
2024-09-30 10:27:46
浏览
收藏 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  
}

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

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

的形式接收参数。

分享
微博
QQ
微信
回复
2024-09-30 16:48:39
相关问题
HarmonyOS router路由路径问题
554浏览 • 1回复 待解决
HarmonyOS router路由跳转问题
504浏览 • 0回复 待解决
router 路由跳转相关问题
358浏览 • 1回复 待解决
如何实现router命名路由跳转
1092浏览 • 1回复 待解决
Router传递Object对象解读
1439浏览 • 1回复 待解决
arkts-no-inferred-generic-params
121浏览 • 1回复 待解决