HarmonyOS router携带参数问题

router跳转page的时候只能携带基础类型么,传入了一个数组:

router.pushUrl({
  url: 'pages/MediaDetailPage',
  params: {
    medias: this.mMediaData,
    jumpIndex: index
  }
})

然后在另一个页面拿出来:

params: object = router.getParams()
this.medias = this.params?.['medias'] as Media[]
for (let i = 0; i < this.medias.length; i++) {
  this.data.pushData(this.medias[i]);
}

拿出来的数组里面的类型都是object类型的了,不是Media类型的。

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

如果是通过断点的方式去查看类型,[]或者其他的自定义类型(数组、对象)在断点中都显示object,因为数组也是object类型,关于使用this.medias[0].post.id报错,可以先确定this.medias[0]是否一定有值,然后可以使用:

let info = this.medias[0] as Media
info.post.id

如果还有报错那可能是存在没有值的情况:

let info = this.medias[0] as Media
info?.post.id
分享
微博
QQ
微信
回复
1天前
相关问题
router.back如何携带参数返回给上一级
1641浏览 • 1回复 待解决
router传递hashmap参数问题
1594浏览 • 1回复 待解决
HarmonyOS router获取不到参数
32浏览 • 1回复 待解决
HarmonyOS 页面数据携带返回问题
417浏览 • 1回复 待解决
HarmonyOS router参数不能传递函数
44浏览 • 1回复 待解决
HarmonyOS router参数不能是map类型?
317浏览 • 1回复 待解决
HarmonyOS router.back返回参数如何接收
66浏览 • 1回复 待解决
HarmonyOS router跳转问题
543浏览 • 2回复 待解决
HarmonyOS router 返回问题
374浏览 • 1回复 待解决
router.pushUrl 无法使用Map类型参数
513浏览 • 1回复 待解决
返回页面router.back如何传递参数
1017浏览 • 2回复 待解决
如何获取router.back传递的参数
2746浏览 • 1回复 待解决