#鸿蒙通关秘籍#如何为多层嵌套类实现属性变化UI自动刷新?

HarmonyOS
2024-12-03 11:31:02
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
RAM梦蝶舞

要在HarmonyOS中实现多层嵌套类属性变化的UI自动刷新,可使用@Observed和@ObjectLink装饰器通过以下步骤实现:

  1. 使用@Observed装饰器定义被监听的嵌套类 通过@Observed装饰器标记需要监听属性变化的类,如以下所示:

    @Observed
    export class ThirdGoodsItem {
      imgSrc: Resource;
      price: string;
    
      constructor(imgSrc: Resource, price: string) {
        this.imgSrc = imgSrc;
        this.price = price;
      }
    }
    
  2. 为自定义组件使用@ObjectLink绑定数据 使用@ObjectLink装饰器将类实例的数据绑定到自定义组件,从而在数据变化时自动刷新界面。

    @Component
    struct SecondViews {
      @ObjectLink data: SecondGoodsItemList;
    
      build() {
        List() { ... }
      }
    }
    
  3. 更新数据字段触发UI刷新 通过修改嵌套类的属性数据,刷新对应的UI。

    this.itemList.forEach((item, index) => {
      item.imgSrc = originItemList[index].imgSrc;
      item.price = originItemList[index].price;
    });
    

通过这些步骤,确保在ThirdGoodsItem类的属性改变时,界面对相应的变化会自动进行更新。

分享
微博
QQ
微信
回复
2024-12-03 13:40:24
相关问题
嵌套Class的属性变化无法触发UI渲染
443浏览 • 1回复 待解决
UI预览不会自动刷新, 且刷新较慢
884浏览 • 1回复 待解决
IF条件变化UI刷新
866浏览 • 1回复 待解决