当前位置: 首页 > news >正文

鸿蒙使用 @Builder扩展出来的布局数据更新没法更新UI

 由于业务的复杂,所以我们把相关UI抽离出来。但是数据变化了,没法更新UI

@Builder
 MyGridLayout() {
   }

通过日志打印发现数据的确是更新了,但是UI就没没办法,如何解决呢

@Entry
@Component
struct Page35 {// @State sArray: boolean[] = [false, false, false, false]@State dArray: boolean[][]= [[false, false], [false, false]]build() {Column() {ForEach(this.dArray,(item:[],index:number)=>{ForEach(item,(item_2:boolean,index_2:number)=>{Button('第'+index+'组,第'+index_2+'个,value:'+item_2).onClick(()=>{this.dArray[index][index_2] = !item_2//修改数据// 让数组元素地址变更,从而触发重绘// this.dArray[index] = [... this.dArray[index]]//方案一:拷贝数组// this.dArray[index] = JSON.parse(JSON.stringify(item))//方案二:序列化后再反序列化。//方案三:@Observed+@ObjectLink 参考官方文档this.dArray.splice(index, 1, this.dArray[index]);//方案四:替换指定索引元素})})})}.width('100%')}
}

我这边是通过方案四解决的,改变数据的时候,手动调用splice方法。

http://www.lryc.cn/news/388673.html

相关文章:

  • 湖南省教育网络协会莅临麒麟信安调研教育网络数字化建设及教育信创发展情况
  • 论文阅读_优化RAG系统的检索
  • STC8/32 软硬件I2C通讯方式扫描I2C设备地址
  • Linux——数据流和重定向,制作镜像
  • Windows 11的市场份额越来越大了,推荐你升级!
  • 微服务架构中的调试难题与分布式事务解决方案
  • 银行家算法-操作系统中避免死锁的最著名算法
  • PCL 基于点云RGB颜色的区域生长算法
  • cube-studio开源一站式机器学习平台,在线ide,jupyter,vscode,matlab,rstudio,ssh远程连接,tensorboard
  • 1976 ssm 营地管理系统开发mysql数据库web结构java编程计算机网页源码Myeclipse项目
  • 技术派全局异常处理
  • 对于mysql 故障的定位和排查
  • 什么是电航空插头插座连接器有什么作用
  • 数据挖掘常见算法(分类算法)
  • 【深度学习】调整加/减模型用于体育运动评估
  • 重生之算法刷题之路之链表初探(三)
  • 哪吒汽车,正在等待“太乙真人”的拯救
  • HDC Cloud 2024 | CodeArts加速软件智能化开发,携手HarmonyOS重塑企业应用创新体验
  • 基于隐马尔可夫模型的股票预测【HMM】
  • PostgreSQL Replication Slots
  • centos7搭建zookeeper 集群 1主2从
  • Arrays.asList 和 java.util.ArrayList 区别
  • 代码随想录-Day44
  • CriticGPT: 用 GPT-4 找出 GPT-4 的错误
  • SpringBoot:SpringBoot中调用失败如何重试
  • 2024-06-24 问AI: 在大语言模型中,什么是ray?
  • 仓库管理系统09--修改用户密码
  • 在Spring Data JPA中使用@Query注解
  • 【UE5.1】Chaos物理系统基础——01 创建可被破坏的物体
  • Linux下SUID提权学习 - 从原理到使用