HarmonyOS 鸿蒙Next:Navigation页面路由到NavDestination子页面,子页面pop返回到Navigation页面时,如何触发生命周期回调?
HarmonyOS 鸿蒙Next:Navigation页面路由到NavDestination子页面,子页面pop返回到Navigation页面时,如何触发生命周期回调?
有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html
大概率是开屏页是导航的根视图(Navigation),push到其他子页面(NavDestination)。但是这里因为要触发弹窗所以使用单独使用Router。。。 很丑陋的实现需求
Splash页只能用router了,主页用Navigation了
我明白了,使用一个空白的导航页(Navigation),开屏页作为一个NavDestination来使用。就可以拿到开屏页的生命周期了
可以用 emitter
pushPath时 支持传入一个onPop,文档说下一个页面返回时会自动触发,但是我试了无效 我api12,模拟器测得。
pop11+
pop(result: Object, animated?: boolean): NavPathInfo | undefined
弹出路由栈栈顶元素,并触发onPop回调传入页面处理结果。
但是我使用的是官方的RouterModule方案:(https://gitee.com/harmonyos_samples/navigation-router),路由模块是单独抽离的,pushPath是统一处理的。当然也可以这样做,就是多添加一个OnPop的传参而已。但是用这个去满足我的业务需求感觉怪怪的,有点曲线救国的感觉。因为我的需求是:根页面每次出现onPageShow时触发,而不是子页面pop时触发。。。虽然效果是差不多,总感觉怪怪的。。。
最好是改系统路由表吧,官方的HMOS案例都改系统路由表了
系统路由表就没有这样的问题吗?
在开屏页的用户协议弹窗中,点击弹窗链接路由至网页,然后返回至开屏页时再次打开弹窗。
这个示例使用的是router实现,但是我是使用Navigation。router每次返回时能触发onpageshow,但是Navigation无法触发
在HarmonyOS中,使用Navigation组件进行页面路由时,子页面通过pop()
方法返回到Navigation页面时,会自动触发生命周期回调。具体而言,子页面会经历onPause
、onStop
(如果完全不可见),然后Navigation页面则可能接收到onStart
、onResume
等回调,这取决于Navigation页面在返回时的状态。
确保在子页面的onDestroy
、onPause
等回调中正确处理资源释放和状态保存,以及在Navigation页面的onResume
等回调中恢复必要状态。
如果问题依旧没法解决请加我微信,我的微信是itying888。