HarmonyOS 鸿蒙Next route跳转传递的参数不能是对象吗?

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next route跳转传递的参数不能是对象吗?

我这边跳转页面的时候,传递了一个参数

cke_150.png

但是我跳转到该页面接收该参数时,变成这样了:

cke_8413.png

是不是说route跳转传递的参数不能是对象?

而且我传递的过来的对象虽然看起来有值

cke_8364.png

但是值取不出来

cke_13661.png

请问是为啥?

2 回复
如果传递的是类对象,如A类对象,router.getParams() 强制转化后得到的对象a也仅仅是形似A,而并非真正的A类对象,如A类中定义了函数,a是调用不了的,a对象看起来更像是一个JSON对象,里面只有属性,只有经过构造函数创建的对象才是真正的类对象,而由于Date类比较特别,传递后就变成了字符串,而强制转化时无法将字符串直接转成Date类对象,至于 undefiend 的那个貌似是字段不对吧,_duration不是带有下划线吗?

HarmonyOS 鸿蒙Next route跳转传递的参数可以是对象。在HarmonyOS开发中,使用router进行页面跳转时,可以传递包括对象在内的多种类型参数。然而,需要注意的是,传递的对象在接收端可能无法直接保持其原有的类属性和方法,而是被序列化为JSON格式或其他形式。

在传递对象时,建议将对象转换为JSON字符串进行传递,然后在接收端再将JSON字符串反序列化为对象。这样可以确保对象的基本属性能够正确传递。如果对象中包含方法或特殊类型(如Date),则这些方法或特殊类型在反序列化后可能无法直接恢复,需要额外处理。

此外,如果传递的对象是自定义类实例,并且希望在接收端能够调用其方法,那么可能需要使用额外的序列化/反序列化库(如class-transformer)来确保对象的方法在传递过程中不被丢失。

如果问题依旧没法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部