当前位置: 首页 > 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肯定是有问题

相关文章:

  • Flannel后端为UDP模式下,分析数据包的发送方式——tun设备(三)
  • 基于企业数字化转型战略的数据治理方法论与顶层设计思路
  • list(c++)
  • BadSuccessor漏洞:未修复的微软Active Directory攻击可导致域控沦陷
  • 基于STM32F4的cubemx关于RTC配置说明
  • 参与开发的注意事项
  • 手写Tomcat(二)—Tomcat简化模型架构
  • 第六部分:第六节 - TypeScript 与 NestJS:打造类型安全的厨房管理流程
  • echarts 空心饼图,内说明文字居中
  • 已经 上线 Vue 项目 国际化 i18n 中译英
  • CVE-2022-22947源码分析与漏洞复现
  • Python应用“关键字”初解
  • 车载以太网网络测试-27【SOME/IP-SD简述】
  • MAX96752FGTN/V+T:双LVDS(OLDI)输出的GMSL2解串器架构与应用探讨——汽车与工业视频传输方案深度分析
  • 格雷希尔快速封堵接头,解决新能源汽车的气密性检测和三电系统的综合测试
  • VSCode配置C/C++环境
  • 编程日志5.17
  • MPI中近邻(neighborhood)之间的All-to-All通信
  • Web3.0:下一代互联网的变革与机遇
  • “智”斗秸秆焚烧,考拉悠然以科技之力筑牢生态安全防线
  • 做网站时网页中格式对不齐怎么办/seo词条
  • 做互联网小程序 和网站有没有前景/网络广告营销
  • 上海嘉定区网站建设/如何获取热搜关键词
  • 网站和web系统的区别/昆山网站建设
  • 寿阳网站建设/郑州网站建设制作
  • 局机关门户网站建设情况汇报/电商平台怎么推广