HarmonyOS鸿蒙Next中使用router时能不能将函数放到params中作为参数传过去?

HarmonyOS鸿蒙Next中使用router时能不能将函数放到params中作为参数传过去? 1、页面1跳转的代码,想将myFun函数传过去

2、页面2定义了一个函数接受myFun函数

3、测试函数是否成功接受

4、显示接收失败

求大佬帮助

12 回复

可以把函数放在对象里传过去

更多关于HarmonyOS鸿蒙Next中使用router时能不能将函数放到params中作为参数传过去?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


已经用其他方法实现我想要的功能的,

老师,想问一下,我把函数放到对象里边去了,但是传过去调用方法失败,但可以调用属性,是为什么呀,

router在传递params参数不能传递方法和系统接口返回的对象,所以你通过router.getParams获取到对象时,所有的方法是找不到的,会抛异常,但是基本类型的属性都是正常的,

不能传递函数,但可以传递函数的标识(比如函数的名称字符串)。

望采纳。

应该不行,因为传过去的参数要序列化和反序列化。方法没办法序列化。

好的,感谢你的回答。

如果不行,编译时其实应该报红的

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

把函数单独放到一个文件里导出,

在HarmonyOS鸿蒙Next中,使用router进行页面跳转时,params参数主要用于传递数据,而不是函数。params支持传递基本数据类型、对象、数组等,但不支持直接传递函数作为参数。如果需要传递函数逻辑,可以通过其他方式实现,例如将函数逻辑封装在共享模块或使用事件机制进行通信。

在HarmonyOS鸿蒙Next中,使用router进行页面跳转时,params参数主要用于传递简单数据类型(如字符串、数字等)或可序列化的对象。不能直接将函数作为参数传递,因为函数无法被序列化。如果需要传递函数逻辑,可以通过以下方式实现:

  1. 使用全局状态管理:将函数存储在全局状态中,目标页面从全局状态中获取并调用。
  2. 通过回调机制:在目标页面定义回调函数,通过事件或接口触发。

这样可以确保数据传递的可靠性和可维护性。

回到顶部