#鸿蒙通关秘籍#如何使用EventHub进行UIAbility与UI的数据同步?

HarmonyOS
5h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
墨s倾城ASIC

要在UIAbility组件与UI之间进行数据同步,使用EventHub是一个有效的方式。首先,需要在UIAbility中注册一个自定义事件,然后可以通过UI触发此事件。这是一个示例:

import { hilog } from '@kit.PerformanceAnalysisKit'; import { UIAbility, Context, Want, AbilityConstant } from '@kit.AbilityKit';

const DOMAIN_NUMBER: number = 0xFF00; const TAG: string = '[EventAbility]';

export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { let eventhub = this.context.eventHub; eventhub.on('event1', this.eventFunc); }

eventFunc(argOne: Context, argTwo: Context): void { hilog.info(DOMAIN_NUMBER, TAG, ${argOne}, ${argTwo}); } }

import { common } from '@kit.AbilityKit'; import { promptAction } from '@kit.ArkUI';

@Entry @Component struct Page_EventHub { private context = getContext(this) as common.UIAbilityContext;

eventHubFunc(): void { this.context.eventHub.emit('event1', 2, 'test'); }

build() { Column() { ListItem() { Row() { .onClick(() => { this.eventHubFunc(); }) } } } } }

通过上面的步骤,UIAbility组件和UI界面之间的事件通信就顺利实现了。

分享
微博
QQ
微信
回复
2h前
相关问题
HarmonyOS viewmodel如何ui同步
430浏览 • 1回复 待解决
Postgresql 宿主机如何Docker同步数据?
4100浏览 • 1回复 待解决
父组件如何孙子组件进行状态同步
2639浏览 • 1回复 待解决
EmitterEventHub区别是什么?
467浏览 • 1回复 待解决