HarmonyOS 数组监听问题

前提:

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

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

@Builder
tableList(list: PolicyList[]) {
  Column() {
    Row() {
      Text('有效保单 ' + list.length)
    }
  }
}

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

Column() {
  Row() {
    Text('有效保单 ' + this.model?.validSortList.length)
  }
}

直接取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
}
分享
微博
QQ
微信
回复
2025-01-09 17:10:24
相关问题
如何监听数组内对象属性变化
2699浏览 • 1回复 待解决
HarmonyOS 对象内数组排序问题
359浏览 • 1回复 待解决
HarmonyOS网络监听问题
516浏览 • 1回复 待解决
HarmonyOS 二维数组刷新问题
688浏览 • 1回复 待解决
HarmonyOS 点击事件监听问题
369浏览 • 1回复 待解决
HarmonyOS 键盘事件监听问题
1027浏览 • 1回复 待解决
HarmonyOS 折叠屏监听问题
222浏览 • 1回复 待解决
HarmonyOS 网络连接监听问题
393浏览 • 1回复 待解决
HarmonyOS 关于@Watch监听状态问题
793浏览 • 1回复 待解决
HarmonyOS 相机人脸监听的相关问题
446浏览 • 1回复 待解决
HarmonyOS 位置权限变更监听回调问题
509浏览 • 1回复 待解决