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

HarmonyOS
2024-12-03 11:31:02
787浏览
收藏 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;
      }
    }
    
    • 1.
    • 2.
    • 3.
    • 4.
    • 5.
    • 6.
    • 7.
    • 8.
    • 9.
    • 10.
  2. 为自定义组件使用@ObjectLink绑定数据 使用@ObjectLink装饰器将类实例的数据绑定到自定义组件,从而在数据变化时自动刷新界面。

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

    this.itemList.forEach((item, index) => {
      item.imgSrc = originItemList[index].imgSrc;
      item.price = originItemList[index].price;
    });
    
    • 1.
    • 2.
    • 3.
    • 4.

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

分享
微博
QQ
微信
回复
2024-12-03 13:40:24


相关问题
嵌套Class的属性变化无法触发UI渲染
888浏览 • 1回复 待解决
UI预览不会自动刷新, 且刷新较慢
1725浏览 • 1回复 待解决
IF条件变化UI刷新
1236浏览 • 1回复 待解决