HarmonyOS鸿蒙Next中如何实现router.back()返回首页后触发首页菜单加载方法?

HarmonyOS鸿蒙Next中如何实现router.back()返回首页后触发首页菜单加载方法?

需求是

  1. 首页跳转到 management-my-apps 页面,
  2. 编辑菜单后 router.back() 返回首页
  3. 首页刷新菜单

我在返回首页后, 如何触发首页 this.MenuChild.menuRefreshData() 方法 !!!

求大佬指点, 跪谢!

8 回复

eventHub,简单又暴力

更多关于HarmonyOS鸿蒙Next中如何实现router.back()返回首页后触发首页菜单加载方法?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


onpageshow里面判断

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

onPageShow不行的, home没有@Entry修饰。

home是tab里的内容页。

home跳转到B页面,再从B页面返回时触发,其它操作不触发

用onVisibleAreaChange倒是可以实现, 但还是不太完美,

看看使用的路由方案里面有没有对应的hook,

可以在router.back()之前发送eventHub或者emitter通知this.MenuChild.menuRefreshData()更新。

在HarmonyOS鸿蒙Next中,可以通过router.back()方法返回首页,并在返回时触发首页菜单的加载方法。具体步骤如下:

  1. 定义首页的加载方法:在首页的onPageShow()生命周期方法中定义需要触发的菜单加载逻辑。onPageShow()会在页面显示时自动调用。
onPageShow() {
    this.loadMenu(); // 调用加载菜单的方法
}
  1. 使用router.back()返回首页:在需要返回首页的地方调用router.back()方法,并指定目标页面的路径。
router.back({
    uri: 'pages/HomePage' // 首页的路径
});
  1. 确保首页的onPageShow()被触发:当router.back()返回到首页时,onPageShow()生命周期方法会自动执行,从而触发菜单加载逻辑。

通过这种方式,可以在返回首页时确保菜单加载方法被正确触发。

在HarmonyOS鸿蒙Next中,可以通过router.back()返回到首页,并在首页的onPageShow生命周期中触发菜单加载方法。具体步骤如下:

  1. 在首页页面中,定义onPageShow生命周期方法,并在其中调用菜单加载方法。
  2. 使用router.back()返回首页时,系统会自动触发onPageShow方法,从而执行菜单加载逻辑。

示例代码:

onPageShow() {
  this.loadMenu(); // 调用菜单加载方法
}

这样,每次返回到首页时,都会自动触发菜单加载。

回到顶部