HarmonyOS TabContent页面生命周期不触发
TabContent页面生命周期不触发。
1. IDE官方模版创建出来的项目, entry/src/main/ets/pages/Index.ets里写了个tabs。
build() {
if (this.isLogin) {
MainTabs()
} else {
SMSAuthPage()
}
}
2. MainTabs代码:
import { RoadMapPage as HomePage } from '@jlgl/lesson';
import { MinePage } from '@jlgl/mine'
import { PurchasePage } from '@jlgl/purchase';
import { MainPage as SOETestPage} from '@jlgl/soe/src/main/ets/components/mainpage/MainPage'
@Component
export struct MainTabs {
private tab_name_home: string = '首页'
private tab_name_mine: string = '我的'
private tab_name_purchase: string = '购买'
@State selectedIndex: number = 0;
@Provide hideTabBars: boolean = false;
@Builder tabBuilder(title: string, index: number, selectedImag: Resource, normalImag: Resource) {
Column() {
Image(this.selectedIndex === index ? selectedImag : normalImag)
.objectFit(ImageFit.ScaleDown)
.size({width:40, height:40})
Text(title)
.fontSize(12)
.fontColor(this.selectedIndex === index ? $r('app.color.theme_tab_highlighted') : $r('app.color.theme_tab_normal'))
}
.width('100%')
.height(60)
.justifyContent(FlexAlign.Center)
}
build() {
Tabs({barPosition: BarPosition.End}) {
TabContent() {
HomePage()
}
.expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP])
.tabBar(this.tabBuilder(this.tab_name_home, 0, $r('app.media.icon_tab_study_active_new'), $r('app.media.icon_tab_study_default_new')))
TabContent() {
PurchasePage()
}.tabBar(this.tabBuilder(this.tab_name_purchase, 1, $r('app.media.icon_tab_purchase_active_new'), $r('app.media.icon_tab_purchase_default_new')))
TabContent() {
MinePage()
}.tabBar(this.tabBuilder(this.tab_name_mine, 2, $r('app.media.icon_tab_user_active_new'), $r('app.media.icon_tab_user_default_new')))
TabContent() {
SOETestPage()
}.tabBar(this.tabBuilder(this.tab_name_mine, 2, $r('app.media.icon_tab_user_active_new'), $r('app.media.icon_tab_user_default_new')))
}
.scrollable(false)
.expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP])
.barHeight(this.hideTabBars ? 0 : 56)
.animationDuration(0)
.onChange((index: number) => {
console.info('change index ', index)
this.selectedIndex = index
})
}
}
3. HomePage跳转到二级页面再回来,生命周期函数不触发。
生命周期函数:
aboutToReuse(params: Record<string, ESObject>) {
}
aboutToAppear(): void {
}
onPageShow(): void {
}
跳转函数:
router.pushNamedRoute({
name: 'LessonDetailPage',
params: {
lessonId: params.get('id')
}
})
二级页面回退函数:
router.back()
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 生命周期不触发
78浏览 • 1回复 待解决
HarmonyOS 页面生命周期问题
26浏览 • 1回复 待解决
HarmonyOS navigation主页面生命周期
535浏览 • 1回复 待解决
HarmonyOS 是否有支持应用生命周期、页面生命周期、组件生命周期Hook的API?
406浏览 • 0回复 待解决
HarmonyOS TabContent的生命周期不受NavDestination页面压栈而触发
47浏览 • 1回复 待解决
TabContent 内容的生命周期
433浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何监听页面生命周期变化?
195浏览 • 1回复 待解决
通过Navigation触发的页面跳转,目标页面的生命周期函数不执行
20浏览 • 1回复 待解决
HarmonyOS 生命周期回调触发
80浏览 • 1回复 待解决
旋转屏幕,如何防止界面生命周期重启
2135浏览 • 1回复 待解决
HarmonyOS 使用Navigation,如何在页面栈跳转中获取页面生命周期
33浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙页面生命周期接口的调用顺序
228浏览 • 2回复 待解决
HarmonyOS 页面跳转时,生命周期函数没有触发
27浏览 • 1回复 待解决
#鸿蒙通关秘籍#ArkUI中的自定义组件生命周期和页面生命周期有什么区别?
197浏览 • 1回复 待解决
HarmonyOS页面生命周期无感监听返回的页面名称是否会重名
508浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在Navigation中实现页面生命周期的监听?
171浏览 • 1回复 待解决
HarmonyOS Navigation跳转新页面生命周期初始化问题
447浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙应用和页面生命周期函数使用详解
133浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中监听页面生命周期事件?
121浏览 • 1回复 待解决
HarmonyOS navdestination的生命周期,与页面和组件生命周期的关系
46浏览 • 1回复 待解决
FA模型中旋转屏幕,如何防止界面生命周期重启
316浏览 • 1回复 待解决
HarmonyOS 页面组件的生命周期、自定义组件生命周期监听问题
13浏览 • 1回复 待解决
HarmonyOS navigation页面息屏和激活生命周期不走
78浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS NEXT中使用ArkUI的页面生命周期方法?
155浏览 • 1回复 待解决
HarmonyOS页面onPageShow生命周期不回调
1042浏览 • 1回复 待解决
1、请参考自定义组件的生命周期文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-custom-component-lifecycle-V5#abouttoappear
2、可以结合组件可见区域变化事件使用。参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-component-visible-area-change-event-V5
1中的文档有表明生命周期函数调用的条件:
aboutToAppear:在创建自定义组件的新实例后,在执行其build()函数之前执行。子组件仅第一次会创建。
onPageShow:页面每次显示时触发一次,包括路由过程、应用进入前台等场景,仅@Entry装饰的自定义组件生效。