HarmonyOS UIContext是什么?

在使用Navigation 页面级别的 同一个Component中

在aboutToAppear 和 aboutToDisappear 调用 this.getUIContext()竟然不是同一个对象,在页面的 某一个Text里面的onClick()方法中 再次使用this.getUiContext()获取的是另外一个对象,不知道 这个getUiContext有什么作用,为什么获取的不是同一个对象,我想在 页面的所有控件中使用同一个方法 获取一个值 ,并且是一样的 ,该怎么操作

我怎么获取当前页面对象 比如

@Entry
@Component
export struct Index{

  aboutToAppear(): void {
    // 在这里获取this对象
  }
  build(){
    CustomComponentA()
  }

}

中有一个CustomComponentA.我怎么 获取当前的Entry对象,目的是否存在一个方法,我传递当前的 例如CustomComponentA 的this 进去 就可以获取 @Entry的Index的对象

阅读 528
1 个回答

UIContext是指当前UI的上下文, getUIContext获取获取UIContext实例。

aboutToAppear : aboutToAppear函数在创建自定义组件的新实例后,在执行其build()函数之前执行。允许在aboutToAppear函数中改变状态变量,更改将在后续执行build()函数中生效。

aboutToDisappear: aboutToDisappear函数在自定义组件析构销毁之前执行。不允许在aboutToDisappear函数中改变状态变量,特别是@Link变量的修改可能会导致应用程序行为不稳定。

两个生命周期都不同,UI界面肯定发现了变化,所以获取到的肯定不是同一个对象,可以在想要使用this.getUIContext获取到相应的数值,然后转给一个全局变量,同步调用即可

import { UIContext } from '@kit.ArkUI';
@Entry
@Component
export struct Index{
  @State uiContext: UIContext | null = null;

  aboutToAppear(): void {
    //将在此获取的this.getUIContext()赋值给 this.uiContext ,后期直接调用this.uiContext即可
    this.uiContext = this.getUIContext()
  }
  build(){
    Button('获取UIContent').width(100).height(100)
  }
}

getUIContext只是获取当前UI界面上下文的内容,不同地方调用获取到的就会有所不同,可以参考如下链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-arkui-uicontext-V5

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进