HarmonyOS 鸿蒙Next 关于路由传值并回调

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

HarmonyOS 鸿蒙Next 关于路由传值并回调

通过路由传值,传输对象,对象里面带有回调方法。  在目的页面接受

let params = router.getParams() as MaterialLibraryOpenParams

此时回调方法消失。  因为as方法重新new了对象。导致存储在路由内的object并不是当前object。回调失效。

2 回复

关于HarmonyOS鸿蒙Next的路由传值并回调问题,以下是一些专业解答:

在HarmonyOS开发中,使用路由进行页面跳转时,可以传递包括对象在内的多种类型参数。为了确保对象的基本属性能够正确传递,建议将对象转换为JSON字符串进行传递,然后在接收端再将JSON字符串反序列化为对象。

对于回调处理,可以在使用pushPathpushPathByName方法时,通过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。

回到顶部