更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 应用开发 > 如何在app.ets中定义全局对象及在其它ets文件中获取并应用它

如何在app.ets中定义全局对象及在其它ets文件中获取并应用它

更新时间:2022-06-26 14:58:30浏览次数:524+次

在鸿蒙UI开发中,如何在app.ets中定义全局对象(全局变量、方法),又如何在其它ets文件中获取并应用它?

\

问题说明

在app.js中定义了对象,可以在自定义js文件中通过getApp()获取app.js中暴露的对象。问题:在app.ets下,如标题,如何实现呢?另外,当app.ets中全局变量的值改变时,其它引用的界面会自动刷新吗?如何做到?

解答

FA模型使用globalThis能够实现全局变量共享,有globalThis这种偏门却很高级的用法。使用参考:

app.ets中:

onCreate() {

    console.info('Application onCreate')

    globalThis.msg = 'test'

  },

 index.ets:

@Entry

@Component

struct Index {

  @State message: string = ''

  aboutToAppear(){

    this.message = globalThis.msg

  }

  build() {

    Row() {

      Column() {

        Text(this.message)

          .fontSize(50)

          .fontWeight(FontWeight.Bold)

      }

      .width('100%')

    }

    .height('100%')

  }

}