HarmonyOS emitterdata丢失问题

HarmonyOS
4天前
浏览
收藏 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)
  }
}
//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)
  }
}
分享
微博
QQ
微信
回复
4天前
相关问题
HarmonyOS 精度丢失问题
71浏览 • 2回复 待解决
HarmonyOS EmitterData在接收端如何解析?
422浏览 • 1回复 待解决
HarmonyOS number字段精度丢失问题
795浏览 • 1回复 待解决
HarmonyOS Long类型精度丢失问题
176浏览 • 1回复 待解决
JSON.parse数据处理导致精度丢失问题
502浏览 • 1回复 待解决
HarmonyOS 数据精度丢失
42浏览 • 2回复 待解决
每次运行Preferences丢失
457浏览 • 1回复 待解决
HarmonyOS JSON解析number丢失精度
398浏览 • 1回复 待解决
HarmonyOS 重启应用后cookie丢失
313浏览 • 1回复 待解决
PreferenceManager保存的数据经常丢失
276浏览 • 1回复 待解决
提示数据丢失怎么处理?
4905浏览 • 2回复 待解决
HarmonyOS Webview写cookie部分字段丢失
105浏览 • 1回复 待解决
修改代码重新运行preference数据丢失
584浏览 • 1回复 待解决