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

【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.lryc.cn/news/2384067.html

相关文章:

  • iisARR负均衡
  • uniapp打包报错:重新在manifest.json中生成自己的APPID
  • 人脸识别备案开启安全防护模式!紧跟《办法》!
  • 【爬虫】DrissionPage-7
  • 新浪《经济新闻》丨珈和科技联合蒲江政府打造“数字茶园+智能工厂+文旅综合体“创新模式
  • git 撤销最近的几次push
  • 水滴前端面经及参考答案
  • React 第四十五节 Router 中 useHref() Hook的使用详解及注意事项
  • 50、js 中var { ipcRenderer } = require(‘electron‘);是什么意思?
  • LeetCode 438. 找到字符串中所有字母异位词 | 滑动窗口与字符计数数组解法
  • @RequestParam 和 @RequestBody、HttpServletrequest 与HttpServletResponse
  • 计算机底层的多级缓存以及缓存带来的数据覆盖问题
  • SpringBoot-1-入门概念介绍和第一个Spring Boot项目
  • 服务器多用户共享Conda环境操作指南——Ubuntu24.02
  • 基于FPGA的电子万年历系统开发,包含各模块testbench
  • Leetcode刷题 | Day63_图论08_拓扑排序
  • MySQL 可观测性最佳实践
  • 系统性能分析基本概念(3) : Tuning Efforts
  • OceanBase数据库全面指南(函数篇)函数速查表
  • SpringBoot 对象转换 MapStruct
  • 计算机网络——Session、Cookie 和 Token
  • 01-jenkins学习之旅-window-下载-安装-安装后设置向导
  • Spark,SparkSQL操作Mysql, 创建数据库和表
  • AttributeError: module ‘cv2.dnn‘ has no attribute ‘DictValue‘错误解决方法
  • HarmonyOS 鸿蒙应用开发基础:@Watch装饰器详解及与@Monitor装饰器对比分析
  • 机器人拖动示教控制
  • 免费开放试乘体验!苏州金龙自动驾驶巴士即将上线阳澄数谷
  • matlab加权核范数最小化图像去噪
  • docker容器暴露端口的作用
  • 每日Prompt:像素风格插画