HarmonyOS 鸿蒙Next Entry修饰的Component生命周期onPageHide未调用
HarmonyOS 鸿蒙Next Entry修饰的Component生命周期onPageHide未调用
Splash代码如下
import router from '@ohos.router'
@Component
struct Splash {
timeoutId: number = 0;
build() {
Flex({
direction: FlexDirection.Column,
alignItems: ItemAlign.Center,
}) {
Image($r('app.media.splash_up'))
.objectFit(ImageFit.Contain)
.height('80%')
Image($r('app.media.splash_bottom'))
.objectFit(ImageFit.Contain)
.height('20%')
.onClick(() => {
router.replaceUrl({
url: "pages/Index"
})
})
}
.width('100%')
.height('100%')
}
onPageShow() {
console.log(`onPageShow`);
this.timeoutId = setInterval(() => {
console.log(`onPage...???`);
router.replaceUrl({
url: 'pages/Index'
})
}, 2000)
}
onPageHide() {
console.log(`${this.timeoutId}`);
console.log(`onPageHide`);
}
}
查看日志发现没有onPageHide,有没有解决方案?生命周期还是挺重要的,我解决是把setInterval换成setTimeout方法。。。
更多关于HarmonyOS 鸿蒙Next Entry修饰的Component生命周期onPageHide未调用的实战教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
换成 aboutToAppear 和 aboutToDisappear 这个
更多关于HarmonyOS 鸿蒙Next Entry修饰的Component生命周期onPageHide未调用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
已经工单反馈了,回复用这两个,在NEXT版本修复。
DEV官方splashscreenpage工程也存在这类问题
在HarmonyOS中,@Entry
修饰的Component
表示应用的入口组件。onPageHide
是组件生命周期回调之一,通常在页面隐藏时触发。如果onPageHide
未调用,可能由以下原因导致:
- 页面未正确隐藏:确保页面确实被隐藏,而不是被销毁或未切换到后台。
- 生命周期回调未注册:确认在组件中正确实现了
onPageHide
方法。 - 系统或框架问题:某些情况下,系统或框架的特定状态可能导致回调未触发。
- 组件层级问题:如果组件嵌套层级较深,可能影响生命周期回调的执行。
检查代码实现和页面状态,确保onPageHide
被正确注册和执行。