HarmonyOS emitterdata丢失问题

HarmonyOS
2024-12-23 17:56:05
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Heiang

目前发送事件时传递的数据,eventdata支持数据类型包括Array、ArrayBuffer、Boolean、DataView、Date、Error、Map、Number、Object、Primitive(除了symbol)、RegExp、Set、String、TypedArray。

参考地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-emitter-V5#emitteron

//Index.ets
import { ChildComponent, Person } from './ChildComponent'
import { emitter } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
  aboutToAppear(): void {
    emitter.on({
      eventId: 666,
      priority: emitter.EventPriority.IMMEDIATE
    }, (eventData: emitter.EventData) => {
      let data = eventData?.data
      if (data) {
        let person: Person = data['key'] as Person
        console.log('result private person obj name =>',person?.name)
      }else {
        console.log('result private person => data为空')
      }
    })
  }
  build() {
    Stack({
      alignContent: Alignment.Center
    }) {
      Button('按钮', { type: ButtonType.Normal })
        .size({ width: '90%', height: '90%' })
        .onClick(() => {
          console.info('tag orange button clicked')
        })
        .backgroundColor(Color.Orange)
      ChildComponent()
    }
    .height('100%')
    .width('100%')
    .backgroundColor(Color.Gray)
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
//ChildComponent.ets
import { emitter } from '@kit.BasicServicesKit';
export class Person {
  name?:string;
  age?:number;
  constructor(name?:string, age?:number) {
    this.name = name
    this.age = age
  }
}
@Component
export struct ChildComponent {
  private privatePerson:Person = new Person('小张', 18)
  build() {
    Column(){
      Button('emitter发送数据', { type: ButtonType.Normal })
        .size({ width: '90%', height: 40 })
        .onClick(() => {
          emitter.emit(
            {
              eventId: 666,
              priority: emitter.EventPriority.IMMEDIATE
            },
            {
              data:new Object({'key':this.privatePerson})
            })
        })
        .backgroundColor(Color.Green)
    }
    .size({width:'80%',height:'80%'})
    .backgroundColor(Color.Yellow)
    .justifyContent(FlexAlign.Center)
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
分享
微博
QQ
微信
回复
2024-12-23 20:41:27
相关问题
HarmonyOS 精度丢失问题
844浏览 • 2回复 待解决
HarmonyOS Long类型精度丢失问题
952浏览 • 1回复 待解决
HarmonyOS number字段精度丢失问题
1534浏览 • 1回复 待解决
HarmonyOS EmitterData在接收端如何解析?
1192浏览 • 1回复 待解决
HarmonyOS 数据精度丢失
871浏览 • 2回复 待解决
JSON.parse数据处理导致精度丢失问题
1483浏览 • 1回复 待解决
HarmonyOS 拖拽时动画会丢失
590浏览 • 1回复 待解决
每次运行Preferences丢失
972浏览 • 1回复 待解决
HarmonyOS 重启应用后cookie丢失
1063浏览 • 1回复 待解决
HarmonyOS JSON解析number丢失精度
1241浏览 • 1回复 待解决
HarmonyOS Webview写cookie部分字段丢失
716浏览 • 1回复 待解决
提示数据丢失怎么处理?
5658浏览 • 2回复 待解决
HarmonyOS NAPI层日志输出末尾字符丢失
729浏览 • 1回复 待解决
HarmonyOS 对象作为参数传递时方法丢失
1189浏览 • 1回复 待解决
PreferenceManager保存的数据经常丢失
956浏览 • 1回复 待解决