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

【Harmony】【鸿蒙】List列表View如果刷新内部的自定义View

创建自定义View

@Component
export struct TestView{@State leftIcon?:Resource = $r('app.media.leftIcon')@State leftText?:Resource | string = $r('app.string.leftText')@State rightText?:Resource | string = $r('app.string.rightText')@State rightIcon?:Resource = $r('app.media.rightIcon')build() {RelativeContainer() {.....}}
}

创建一个Dialog作为示例

@CustomDialog
@Component
export struct TestDialog {@State itemBean: Array<TestBean> = new Array()aboutToAppear(): void {// 创建几个条目this.itemBean.push(new TestBean())this.itemBean.push(new TestBean())this.itemBean.push(new TestBean())this.itemBean.push(new TestBean())this.itemBean.push(new TestBean())}build() {RelativeContainer() {Button("点击修改List的值让其刷新").onClick(()=>{// 点击修改List的值让其刷新....)List({ space: 0, initialIndex: 0 }) {ForEach(this.itemBean, (item: TestBean, index: number) => {ListItem() {TestView({leftIcon:item.leftIcon,leftText:item.leftText,rightText:item.rightText,rightIcon:item.rightIcon,})}}}         }}
}

上面示例是一个类式Android RecycleView把条目封装成一个简单的自定义View
当点击Button时,我要改要让List里的条目刷新。
之前偿试过各种方法比如下面的

// 方法1: 把整个列表数组更新 无效果
this.itemBean = [... this.itemBean]  // 方法2:改变某个索引让其更新,无效果
this.itemBean[2] = JSON.parse(JSON.stringify(this.itemBean[2]))// 方法3:删除并重新赋值 无效果
this.itemText.splice(2,1this.itemBean[2])// 方法4:把itemBean 全部移除再添加 无效果
let copyItemBean = [... this.itemBean] 
this.itemBean .pop()
this.itemBean .pop()
this.itemBean .pop()
this.itemBean .pop()
this.itemBean = copyItemBean 

如果在 itemBean 后面添加一个View又有效果,,经过各种尝试想刷新某个item里的某个值一直失败。
经过几个小时的苦思若想,感觉直接使用itemBean肯定是有问题

http://www.xdnf.cn/news/584641.html

相关文章:

  • 力扣HOT100之二叉树: 236. 二叉树的最近公共祖先
  • vue3定于组件名字的几种方法
  • 杨校老师竞赛课之青科赛GOC5-6年级组模拟题
  • ISO 26262- 5 评估硬件度量值
  • 2025年中青杯赛题浅析-快速选题
  • 12kV 环保气体绝缘交流金属封闭开关设备现场交流耐压试验规范
  • Web前端开发(HTML、CSS快速入门)
  • 2024 年地理信息技术与应用技能大赛(选拔赛/初级)——实操试题
  • 部署Prometheus并通过Grafana展示界面
  • wx.getPrivacySetting接口needAuthorization一直返回false
  • vue element-plus 集成多语言
  • SQLynx:一款跨平台的企业级数据库管理工具
  • pdf图片导出(Visio和Origin)
  • 2025口语App实测Top5!练习口语app真实口碑
  • 可视化图解算法43:数组中的逆序对
  • 鸿蒙Flutter实战:24-混合开发详解-4-初始化Flutter
  • 鸿蒙Flutter实战:25-混合开发详解-5-跳转Flutter页面
  • [Flutter]Completer和compute
  • 计量单片机 RN8302:特性、使用与应用
  • 【人工智障生成日记1】从零开始训练本地小语言模型
  • 【无标题】西门子S7-1500PLC与西门子V90 PN伺服通讯控制项目程序项目程序,共有8轴,编码器信号直接输入到变频器内。
  • 系统架构设计(十八):ATAM
  • 《棒球百科》棒球运动规则·棒球1号位
  • 【竖排繁体识别】如何将竖排繁体图片文字识别转横排繁体,转横排简体导出文本文档,基于WPF和腾讯OCR的实现方案
  • 免费轻量便携截图 录屏 OCR 翻译四合一!提升办公效率
  • 解决weman框架redis报错:Class “llluminatelRedis\RedisManager“ not found
  • 【Java高阶面经:数据库篇】18、分布式事务:如何在分库分表中实现高性能与一致性?
  • 零基础设计模式——第二部分:创建型模式 - 原型模式
  • HCIP(广域网)
  • Normalized Blind Deconvolution论文阅读