HarmonyOS 关于数组中class更改,List不触发更新问题

HarmonyOS 关于数组中class更改,List不触发更新问题。

HarmonyOS
2024-11-28 10:25:51
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
shlp

​可以参考以下demo,@Watch与@Link组合使用 ,相关文档:​https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-watch-V5

class PurchaseItem { 
  static NextId: number = 0; 
  public id: number; 
  public price: number; 
 
  constructor(price: number) { 
    this.id = PurchaseItem.NextId++; 
    this.price = price; 
  } 
} 
 
@Component 
struct BasketViewer { 
  @Link @Watch('onBasketUpdated') shopBasket: PurchaseItem[]; 
  @State totalPurchase: number = 0; 
 
  updateTotal(): number { 
    let total = this.shopBasket.reduce((sum, i) => sum + i.price, 0); 
    // 超过100欧元可享受折扣 
    if (total >= 100) { 
      total = 0.9 * total; 
    } 
    return total; 
  } 
  // @Watch 回调 
  onBasketUpdated(propName: string): void { 
    this.totalPurchase = this.updateTotal(); 
  } 
 
  build() { 
    Column() { 
      ForEach(this.shopBasket, 
        (item: PurchaseItem) => { 
          Text(`Price: ${item.price.toFixed(2)} €`) 
        }, 
        (item: PurchaseItem) => item.id.toString() 
      ) 
      Text(`Total: ${this.totalPurchase.toFixed(2)} €`) 
    } 
  } 
} 
 
@Entry 
@Component 
struct BasketModifier { 
  @State shopBasket: PurchaseItem[] = []; 
 
  build() { 
    Column() { 
      Button('Add to basket') 
        .onClick(() => { 
          this.shopBasket.push(new PurchaseItem(Math.round(100 * Math.random()))) 
        }) 
      BasketViewer({ shopBasket: $shopBasket }) 
    } 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
分享
微博
QQ
微信
回复
2024-11-28 15:43:06
相关问题
HarmonyOS 关于WrapperBuilder更新问题
647浏览 • 1回复 待解决
HarmonyOS app更新问题
801浏览 • 1回复 待解决
HarmonyOS 应用内更新问题
858浏览 • 1回复 待解决
HarmonyOS List item 刷新问题
1525浏览 • 1回复 待解决
HarmonyOS UI新问题
799浏览 • 1回复 待解决
HarmonyOS 二维数组新问题
1065浏览 • 1回复 待解决
HarmonyOS Grid容器视图更新问题
1152浏览 • 1回复 待解决
HarmonyOS 装饰器新问题
873浏览 • 1回复 待解决
HarmonyOS Toggle的Switch值更新问题
685浏览 • 1回复 待解决
数组中元素变更如何触发刷新list
879浏览 • 1回复 待解决
卡片数据更新问题求大佬解答
6106浏览 • 1回复 待解决
HarmonyOS 状态变量新问题
1592浏览 • 1回复 待解决
HarmonyOS ListItem的onClick事件触发问题
1104浏览 • 1回复 待解决