HarmonyOS array数据源发生变化 popup组件不刷新ui?

Column(){
  ForEach( this.popList, (item: SelectBean, index: number) => {
    Row({ space: 2 }) {
      Text(item.name).fontSize(14).margin({left:20}).fontColor($r('app.color.color_66')).layoutWeight(1)
      Image($r("app.media.nai_icon_choose")).fitOriginalSize(true).margin({ left: -5 })
        .visibility(item.select?Visibility.Visible:Visibility.Hidden)
    }.width('100%').height(30).padding(5)
    .onClick((event: ClickEvent) => {
      // this.PLData.forEach((value,i)=>{
      // value.select=true
      // })
      item.select=true;
      this.customPopup=false;
    })
  }, (item: string) => JSON.stringify(item))
}

item.select=true; 改变后。 foreach里 不刷新

阅读 531
1 个回答

是否用的是@State装饰的array数组,当@State装饰的对象是array时,可以观察到数组本身的赋值和添加、删除、更新数组的变化。但数组项中属性的赋值观察不到,文档链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-state-V5\#观察变化

此时,应该用@observed和@objectlink装饰器,文档和示例链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-observed-and-objectlink-V5\#对象数组

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