【关键字】
Navigation / NavDestination / 页面跳转 / 生命周期函数 / onPageShow / onPageHide / onBackPress/ 回调 / onShown / onHidden / onBackPressed
【问题描述】
通过NavDestination组件触发的页面跳转,目标页面的生命周期函数onPageShow、onPageHide、onBackPress不执行。通过router.pushUrl跳转页面,页面生命周期函数才可以执行。
测试代码如下:
router.pushUrl({ url: 'pages/LifeCyclePage' }, router.RouterMode.Single).then(() => {
console.info('Succeeded in jumping to the second page.')
})
this.pageInfos.pushPath({ name: 'LifeCycle' })
【解决方案】
对于NavDestination组件触发的页面跳转,子页面如果使用了onPageShow、onPageHide、onBackPress这些生命周期函数,需要通过NavDestination组件的onShown、onHidden和onBackPressed属性函数回调。