HarmonyOS 鸿蒙Next关于router传值

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

HarmonyOS 鸿蒙Next关于router传值

 let paramsInfo: UserInfo = {
uid: “123”
};
router.pushUrl({
url: ‘pages/LoginPage’,
params: paramsInfo
},router.RouterMode.Standard, (err) => {
if (err) {
console.error(Invoke pushUrl failed, code is ${err.code}, message is ${err.message});
return;
}
console.info(‘Invoke pushUrl succeeded.’);
})
})

可不可以写成这样

 router.pushUrl({
url: ‘pages/LoginPage’,
params: “123”
},router.RouterMode.Standard, (err) => {
if (err) {
console.error(Invoke pushUrl failed, code is ${err.code}, message is ${err.message});
return;
}
console.info(‘Invoke pushUrl succeeded.’);
})
})

只想要个string值,现在必须要传个对象

2 回复

可以把对象转成json,到接收页面再转回实体。

  params: JSON.stringify(paramsInfo)

话说你这个问题,和下面这个问题很像。可以参考一下

https://developer.huawei.com/consumer/cn/forum/topic/0209155321606862017?fid=0101587866109860105

HarmonyOS 鸿蒙Next关于router传值的问题,以下是一些专业解答:

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

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

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

如果开发者在router传值过程中遇到其他问题,可能是由于代码实现或版本差异导致的。建议仔细查阅HarmonyOS的官方文档,确保按照正确的方式进行传值和接收。

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

回到顶部