HarmonyOS 使用Navigation,如何在页面栈跳转中获取页面生命周期

在使用 Navigation 中,页面栈跳转只能获取到 aboutToAppear、aboutToDisappear,无法获取到 onPageShow、onPageHide,请问这个要如何处理或者有没有其他机制可以实现

例如:

struct A1 {
  // 创建NavPathStack路由栈
  @State harARouter: NavPathStack = new NavPathStack();

  @Builder
  routerMap(builderName: string, param: object) {
    if (builderName === 'B1') {
      // 在 B1 是一个 @Component 组件,需要在 push 到 B1 页面时,能捕获到  onPageShow、onPageHide 等页面生命周期
      B1() // 在routerMap中添加需要跳转的harB模块的B1页面
    }
  }

  build() {
    // Navigation关联NavPathStack对象
    Navigation(this.harARouter) {
      Button('跳转到HarB的B1页面')
        .onClick(() => {
          // 跳转到已在路由表注册的harB模块的B1页面
          this.harARouter.pushPathByName('B1', null);
        })
    }
    .navDestination(this.routerMap) // Navigation关联上routerMap路由表
  }
}
HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

1、navigation装饰的子组件,无法使用@entry修饰,没有onPageShow相关的生命周期,是系统规格如此

2、因为1,导致在回退时无法触发pageShow等生命周期方法,可以使用NavDestination相关的生命周期来替代,支持onShown、onHidden、onAppear、onDisAppear等,可参考文档https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-navdestination-V5

分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS navigation页面生命周期
536浏览 • 1回复 待解决
HarmonyOS 页面生命周期问题
33浏览 • 1回复 待解决
HarmonyOS TabContent页面生命周期不触发
455浏览 • 1回复 待解决
HarmonyOS Navigation跳转的组件生命周期
625浏览 • 2回复 待解决
HarmonyOS Navigation跳转生命周期咨询
620浏览 • 1回复 待解决
HarmonyOS Navigation生命周期
40浏览 • 1回复 待解决
HarmonyOS Navigation生命周期问题
33浏览 • 1回复 待解决