HarmonyOS 系统路由表-首页无法监听到页面显示与隐藏

环境:DevEcoStudio 5.0 Mate60 Pro Beta资料:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-navigation-navigation-V5

场景:路由跳转如下:Index–>PageOne,从PageOne点击返回

代码如下:

@Entry
@Component
struct Index {
  pageStack : NavPathStack = new NavPathStack();

  build() {
    Navigation(this.pageStack){
    }.onAppear(() => {
      this.pageStack.pushPathByName("PageOne", null, false);
    })
    .hideNavBar(true)
  }

  onPageShow(): void {
    console.log('onPageShow')
  }

  onPageHide(): void {
    console.log('onPageHide')
  }
}

问题:从Index跳转到PageOne,onPageHide没有回调,从PageOne返回Index,onPageShow没有回调

请问怎么监听Index页面的显示与隐藏呢?(Index通过router跳转PageOne,能够看到正常页面回调)

HarmonyOS
9h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

可以使用NavPathStack配合navDestination属性进行页面路由,跳转时可以携带页面的信息,NavDestination有相关的 onShown 和 onHidden 方法。请参考如下:

NavPathStack文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-navigation-V5#navpathstack10

onPageShow()方法仅在@Entry装饰的自定义组件生效,在Navigation包裹的NavDestination子页面返回时无法触发。可以使用如下方式监听返回主页面的显示隐藏,在回调方法中处理自有业务逻辑,具体说明如下:监听Navigation的onNavBarStateChange()事件,在回调中判断显示隐藏:参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-navigation-0000001815927580#ZH-CN_TOPIC_0000001815927580__%E4%BA%8B%E4%BB%B6

分享
微博
QQ
微信
回复
8h前
相关问题
自定义路由表的实现方法
450浏览 • 1回复 待解决
HarmonyOS如何监听输入法显示隐藏
542浏览 • 1回复 待解决
HarmonyOS能否监听到设备翻转
402浏览 • 1回复 待解决
HarmonyOS webview加载页面无法显示
663浏览 • 1回复 待解决
页面路由的用户权限验证控制拦截
222浏览 • 1回复 待解决