HarmonyOS 数组监听问题

前提:

已经通过@Observed @ObjectLink 装饰相关class

TabContent() {
  this.tableList(this.model?.validSortList || [])
}

@Builder
tableList(list: PolicyList[]) {
  Column() {
    Row() {
      Text('有效保单 ' + list.length)
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

此时this.model?.validSortList改变的时候 list监听不到改变

Column() {
  Row() {
    Text('有效保单 ' + this.model?.validSortList.length)
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

直接取this.model?.validSortList是能监听到改变

这种情况是什么引起的呢

HarmonyOS
2025-01-09 15:17:38
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zxjiu

参考demo:

import { JSONUtil } from "@pura/harmony-utils"

@Entry
@Component
struct familyPolicy {
  @State model: CPICPolicyModel | null = null

  build() {
    Row() {
      this.tableList({
        params: this.model?.validSortList || []
      })

      Button('请求数据').onClick(() => {
        setTimeout(() => {
          this.model = JSONUtil.jsonToBean(CPICPolicyModel, '{"validSortList":[{"className":"a"},{"className":"b"}]}')
        }, 2000)
      })
    }
  }

  @Builder
  tableList(p: TMP) {
    Column() {
      Row() {
        Text('有效保单 ' + this.model?.validSortList?.length)
          .height(28)
          .fontSize(13)
          .fontColor('#3557F9')
          .backgroundColor('#E1EEFF')
          .borderRadius(14)
          .textAlign(TextAlign.Center)
          .padding({ left: 12, right: 12 })
      }
    }
  }
}

class TMP {
  params: PolicyList[] | null = []
}

@Observed
export class CPICPolicyModel {
  validSortList?: PolicyList[]
}

@Observed
export class PolicyList {
  className?: string
}
  • 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.
分享
微博
QQ
微信
回复
2025-01-09 17:10:24
相关问题
如何监听数组内对象属性变化
3136浏览 • 1回复 待解决
HarmonyOS 对象内数组排序问题
807浏览 • 1回复 待解决
HarmonyOS网络监听问题
886浏览 • 1回复 待解决
HarmonyOS 折叠屏监听问题
685浏览 • 1回复 待解决
HarmonyOS 二维数组刷新问题
1056浏览 • 1回复 待解决
HarmonyOS 关于@Watch监听状态问题
1357浏览 • 1回复 待解决
HarmonyOS 键盘事件监听问题
1488浏览 • 1回复 待解决
HarmonyOS 点击事件监听问题
793浏览 • 1回复 待解决
HarmonyOS 网络连接监听问题
993浏览 • 1回复 待解决
HarmonyOS 相机人脸监听的相关问题
894浏览 • 1回复 待解决