HarmonyOS @State ArrayList,list.add方法执行之后,是否会动态刷新相关引用地方的数据

HarmonyOS
2024-12-25 13:49:08
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

foreach的数组没有发生改变,所以没有触发list组件的ui刷新,可使用@Observed装饰器和@ObjectLink装饰器实现。

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-observed-and-objectlink-V5#%E5%AF%B9%E8%B1%A1%E6%95%B0%E7%BB%84

示例参考:

@Observed
class Tags {
  title: string = ''
  flag: boolean = false
  constructor(title: string, flag: boolean) {
    this.title = title
    this.flag = false
  }
}

@Component
struct TextTest {
  @ObjectLink item: Tags

  build() {
    Column() {
      Text(this.item.title)
        .fontColor(this.item.flag ? Color.Red : Color.Black)
        .onClick(() => {
          if (this.item.flag) {
            this.item.flag = false
          } else {
            this.item.flag = true
          }
        })
    }
  }
}

@Entry
@Component
struct Index {
  @State list: Array<Tags> = [new Tags('我的', false), new Tags('你的', false)]

  build() {
    Column() {
      List() {
        ForEach(this.list, (item: Tags, Index: number) => {
          ListItem() {
            TextTest({ item: item })
          }
        }, (item: string) => JSON.stringify(item))
      }
    }.width('100%').height('50%')
  }
}
分享
微博
QQ
微信
回复
2024-12-25 16:04:23
相关问题
HarmonyOS List组件动态刷新数据问题
1260浏览 • 1回复 待解决
HarmonyOS " @State可以修饰ArrayList吗"
610浏览 • 1回复 待解决
HarmonyOS Scroll回调方法执行改变
223浏览 • 1回复 待解决
HarmonyOS List怎么刷新数据
174浏览 • 1回复 待解决
HarmonyOS list数据刷新,头像闪烁
124浏览 • 1回复 待解决
如何通过AOP统计方法执行时间
831浏览 • 1回复 待解决
listadd跟remove item入场、出场动画
1513浏览 • 1回复 待解决
HarmonyOS asset运行add方法时报错
537浏览 • 1回复 待解决
DevEco无法执行Previewer
767浏览 • 1回复 待解决
HarmonyOS ArrayList有addAll方法
132浏览 • 1回复 待解决
HarmonyOS @ObjectLink和@State相关疑问
468浏览 • 1回复 待解决
HarmonyOSList组件是否支持局部刷新
807浏览 • 1回复 待解决
HarmonyOS 是否有种主动刷新UI方法
171浏览 • 1回复 待解决
ForEach在真机上无法执行
2121浏览 • 1回复 待解决