HarmonyOS navigation子页面返回没有走@Entry装饰的页面的onPageShow方法

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

navigation的是一个页面的根容器,navDestination是navigation的一个组件,不是一个page,所以不会走pageShow和pageHide。可以使用如下两种方式监听返回主页面的显示隐藏,在回调方法中处理业务逻辑,详情参考如下:

1、监听Navigation的onNavBarStateChange()事件,在回调中判断显示隐藏,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-navigation-V5#onnavbarstatechange9

参考示例:

Navigation(this.pathStack) {

}
.onNavBarStateChange((isVisible: boolean) => {
  console.info('------>isVisible:' + isVisible)
})

2、使用无感监听observer.on(‘navDestinationUpdate’): 在主页面中添加上述监听,在回调方法中进行判断。判断结果中的name是否等于紧跟主页面之后打开的子页面,判断state状态是否等于1,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-arkui-observer-V5#observeronnavdestinationupdate

参考示例:

aboutToAppear(): void {
  uiObserver.on('navDestinationUpdate', (info) => {
  console.info('NavDestination state update', JSON.stringify(info));
});
}
aboutToDisappear(): void {
  uiObserver.off('navDestinationUpdate');
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 窗口跳转页面的返回问题
290浏览 • 1回复 待解决