HarmonyOS 鸿蒙Next 关于路由传值并回调
HarmonyOS 鸿蒙Next 关于路由传值并回调
通过路由传值,传输对象,对象里面带有回调方法。 在目的页面接受
let params = router.getParams() as MaterialLibraryOpenParams
此时回调方法消失。 因为as方法重新new了对象。导致存储在路由内的object并不是当前object。回调失效。
2 回复
router页面路由不可以传递方法参数,参考链接:
关于HarmonyOS鸿蒙Next的路由传值并回调问题,以下是一些专业解答:
在HarmonyOS开发中,使用路由进行页面跳转时,可以传递包括对象在内的多种类型参数。为了确保对象的基本属性能够正确传递,建议将对象转换为JSON字符串进行传递,然后在接收端再将JSON字符串反序列化为对象。
对于回调处理,可以在使用pushPath
或pushPathByName
方法时,通过onPop
参数注册一个回调函数。当从当前页面返回到上一个页面时,如果传递了result
参数,则会触发该回调函数,并将result
参数传递给回调函数。
例如,在PageOne
中可以使用以下代码注册一个回调函数:
this.pageInfo.pushPath({
name: 'pageTwo',
param: new ParamWithOp(),
onPop: (popInfo: PopInfo) => {
this.message = '[pushPath] last page is: ' + popInfo.info.name + ', result: ' + JSON.stringify(popInfo.result);
}
});
在PageTwo
中,可以通过调用pop
方法并传入result
参数来触发回调:
this.pathStack.pop(new ResultClass(1));
这样,当从PageTwo
返回到PageOne
时,PageOne
中的回调函数将被触发,并接收到传递的result
参数。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。