GlobalThis替代方案有哪些?

​GlobalThis替代方案


HarmonyOS
2024-05-26 17:55:47
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
JKings

背景

ArkTS语法不支持直接使用globalThis。

解决方案

通过一个单例的map来做中转

import common from '@ohos.app.ability.common'; 
  
// 构造单例对象 
export class GlobalThis { 
  private constructor() {} 
  private static instance: GlobalThis; 
  private _uiContexts = new Map<string, common.UIAbilityContext>(); 
  private value = ''; 
  
  public static getInstance(): GlobalThis { 
    if (!GlobalThis.instance) { 
      GlobalThis.instance = new GlobalThis(); 
    } 
    return GlobalThis.instance; 
  } 
  
  getContext(key: string): common.UIAbilityContext | undefined { 
    return this._uiContexts.get(key); 
  } 
  
  setContext(key: string, value: common.UIAbilityContext): void { 
    this._uiContexts.set(key, value); 
  } 
  
  setValue(value:string){ 
    this.value = value 
  } 
  
  getValue():string{ 
    return this.value 
  } 
}

使用

import { GlobalThis } from '../utils/globalThis'; 
  
@Entry 
@Component 
struct Index { 
  @State value:string = GlobalThis.getInstance().getValue() 
  
  build() { 
    Row() { 
      Column() { 
        Text(this.value) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
        Button("setValue") 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
          .onClick(() => { 
            GlobalThis.getInstance().setValue("TEST") 
          }) 
        Button("setValue") 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
          .onClick(() => { 
            this.value =  GlobalThis.getInstance().getValue() 
          }) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
}
分享
微博
QQ
微信
回复
2024-05-27 22:42:36
相关问题
是否替代方案
2970浏览 • 2回复 待解决
ImageReader 在HarmonyOS的替代方案
705浏览 • 1回复 待解决
多工程项目打包方案哪些
303浏览 • 1回复 待解决
Harmony API9之后 GIS 解决方案哪些
1117浏览 • 1回复 待解决
SpannableString替代的吗?
4748浏览 • 1回复 待解决
LocalParticleAbility替代的方法吗?
1869浏览 • 1回复 待解决
computeScroll() 方法鸿蒙什么可以替代
4515浏览 • 1回复 待解决
java对象hashcode方法替代api或者库吗
606浏览 • 1回复 待解决
ArkTS中globalThis无法使用该如何替换
917浏览 • 1回复 待解决
ArkUI调试技巧哪些
259浏览 • 1回复 待解决
OceanBase业务案例哪些
2822浏览 • 1回复 待解决
PolarDB 备份过程哪些
1667浏览 • 1回复 待解决
MongoDB的优势哪些
2841浏览 • 1回复 待解决
证书锁定功能示例哪些
315浏览 • 1回复 待解决
横竖屏旋转demo哪些
406浏览 • 1回复 待解决
NoSQL的MongoDB哪些优点?
2842浏览 • 1回复 待解决
Image图片加载缓慢,什么方案么?
414浏览 • 1回复 待解决