HarmonyOS 如何让自定义组件响应onPageShow

HarmonyOS
2025-01-09 16:11:54
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

当前方案:

1、使用Navgation页面组件,这样NavDestination里能支持onPageShow和onPageHide事件。

2、通过字段传递生命周期,示例代码如下:

import { router } from '@kit.ArkUI';

@Component
struct MyComponent {
  @Link @Watch('OnPageChange') isOnPageShow: boolean;

  build() {
    Row() {
      Column() {
        Text("Hello World")
      }
    }
  }

  OnPageChange() {
    if (this.isOnPageShow == true) {
      this.onPageShow();
    } else {
      this.onPageHide();
    }
  }

  onPageShow(): void {
    console.log("OnPageShow:" + this.isOnPageShow);
  }

  onPageHide(): void {
    console.log("OnPageHide:" + this.isOnPageShow);
  }
}

@Entry
@Component
struct ParentComponent {
  @State isOnPageShow: boolean = false;

  build() {
    Column() {
      // 创建MyComponent实例,并将创建MyComponent成员变量countDownFrom初始化为10,将成员变量color初始化为this.someColor
      MyComponent({ isOnPageShow: this.isOnPageShow })
        .onClick(() => {
          router.pushUrl({
            url: 'pages/Index',
            params: null,
          })
        })
    }
  }

  onPageShow(): void {
    this.isOnPageShow = true;
  }

  onPageHide(): void {
    this.isOnPageShow = false;
  }
}
分享
微博
QQ
微信
回复
2025-01-09 18:33:13
相关问题
HarmonyOS Tab组件无法响应onPageShow
946浏览 • 1回复 待解决
HarmonyOS 定义自定义组件
471浏览 • 1回复 待解决
HarmonyOS 如何自定义布局组件
267浏览 • 1回复 待解决
HarmonyOS 如何自定义toast组件
414浏览 • 1回复 待解决
HarmonyOS 如何主动销毁自定义组件
465浏览 • 1回复 待解决
HarmonyOS 自定义StepperView组件如何实现
450浏览 • 1回复 待解决
HarmonyOS如何自定义组件的Controller?
742浏览 • 1回复 待解决
HarmonyOS如何自定义视频组件样式
767浏览 • 1回复 待解决
如何自定义模拟Tabs组件
1259浏览 • 1回复 待解决
ArkTs如何自定义容器组件
3566浏览 • 1回复 待解决
如何自定义组件原型菜单
1191浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人