HarmonyOS 鸿蒙Next router.back(1, {info: '来自Home页'}); 的返回值怎么在router.pushNamedRoute的页面获取到

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

HarmonyOS 鸿蒙Next router.back(1, {info: ‘来自Home页’}); 的返回值怎么在router.pushNamedRoute的页面获取到

文档https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-router-V5#routerback12 这里介绍可以router.back(1, {info: ‘来自Home页’}); 带回返回值,怎么在router.pushNamedRoute的页面获取到这个参数。


更多关于HarmonyOS 鸿蒙Next router.back(1, {info: '来自Home页'}); 的返回值怎么在router.pushNamedRoute的页面获取到的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在上一页面的onPageShow生命周期里,通过router.getParams()接受传来的参数,

import router from '[@ohos](/user/ohos).router';

[@Entry](/user/Entry)
[@Component](/user/Component)
struct Home {
 [@State](/user/State) message: string = 'Hello World';

 onPageShow() {
   const params = router.getParams() as Record<string, string>; // 获取传递过来的参数对象
   if (params) {
     const info: string = params.info as string; // 获取info属性的值
   }
 }
 ...
}

更多关于HarmonyOS 鸿蒙Next router.back(1, {info: '来自Home页'}); 的返回值怎么在router.pushNamedRoute的页面获取到的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,router.back(1, {info: '来自Home页'}); 的返回值并不会直接传递给 router.pushNamedRoute 的页面。router.back 方法主要用于返回上一个页面,并可以携带参数,但这些参数并不是通过返回值的形式传递的,而是作为页面返回时的附加信息。

要在 router.pushNamedRoute 的页面获取到 router.back 传递的信息,可以通过页面生命周期中的特定方法来实现。在鸿蒙系统中,页面返回时通常会触发 onBackPressonActive 等生命周期方法。你可以在这些方法中通过页面的 Intent 或其他机制来接收和处理传递的信息。

具体实现方式依赖于你的页面结构和信息传递机制。通常,你需要在返回页面(即 router.pushNamedRoute 的目标页面)的 onActive 方法中检查并处理传递的信息。例如,可以通过 this.getIntent().getParcelableExtra("key")(假设你使用了 Parcelable 来传递数据)来获取传递的信息。

请注意,由于鸿蒙系统的API和框架可能会更新,建议查阅最新的官方文档或示例代码来获取最准确的信息。

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

回到顶部