鸿蒙使用 @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.mzph.cn/web/37878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ajax实战09】内容管理页面——删除功能

本文章目标&#xff1a;点击删除图标实现对应数据删除 实现步骤如下&#xff1a; 一&#xff1a;将服务器端获取数据中数据id值绑定到删除图标&#xff08;重点&#xff09; 即在渲染时&#xff0c;利用自定义属性&#xff0c;为td设置id值 <td data-id "${ele.id}…

CEPH client.admin key获取

通过初始化完毕后&#xff0c;admin节点会在/etc/ceph目标下生成对应的配置文件和对应的key文件&#xff0c;通过ceph orch host add 增加的默认是没有的 如果很不幸admin节点挂了&#xff0c;怎么在其它节点使用ceph -s 命令呢 启蒙方法(比较实用) key可以通过ceph auth expor…

chunkers/maxent_ne_chunker/english_ace_multiclass.pickle 找不到

首先在这个nltk_data &#xff1a; NLTK Data官方下的数据集&#xff0c;找不到english_ace_multiclass.pic 说明缺少这个文件 : 那么在 nlp/resources/chunkers/maxent_ne_chunker/english_ace_multiclass.pickle at master teropa/nlp (github.com) 下载那两个文件 : 然…

在Vue3项目中引入Vite进行热更新

第一步&#xff1a;初始化一个Vue3项目&#xff0c;可以使用Vue CLI 在开始之前&#xff0c;我们需要确保已经安装了Vue CLI。可以通过以下命令安装Vue CLI&#xff1a; bash npm install -g vue/cli 接下来&#xff0c;使用Vue CLI初始化一个Vue3项目&#xff1a; bash vue …

基于SpringBoot的CSGO赛事管理系统

您好&#xff01;我是专注于计算机技术研究的码农小野。如果您对CSGO赛事管理系统感兴趣或有相关开发需求&#xff0c;欢迎随时联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot框架&#xff0c;Java技术 工具&#xff1a;Eclipse&a…

迈阿密色主题学科 HTML5静态导航源码

源码介绍 迈阿密色主题学科 HTML5静态导航源码&#xff0c;源码直接上传可用&#xff0c;有技术的可以拿去写个后端搜索调用百度接口&#xff0c;也可用于做引导页下面加你网址添加一个A标签就行了&#xff0c;很简单&#xff0c;需要的朋友就拿去吧 界面预览 源码下载 迈阿…

安装Anaconda + tensorflow

安装Anaconda tensorflow 下载Anaconda&#xff08;64位&#xff09; https://www.anaconda.com/download/ Anaconda3-xxxxxx-Windows-x86_64&#xff08;不要装最新的版本&#xff0c;确保Python是3.7&#xff09; 各种Anaconda老版本&#xff1a; https://mirrors.tuna.ts…

跳转的艺术:Batch文件中GOTO命令的深度解析

跳转的艺术&#xff1a;Batch文件中GOTO命令的深度解析 在批处理文件&#xff08;Batch&#xff09;的编程世界中&#xff0c;GOTO命令是实现流程控制的重要工具之一。它允许程序跳转到脚本中的特定标签位置&#xff0c;从而实现循环、条件分支等复杂的逻辑结构。本文将深入探…

EtherCAT主站IGH-- 4 -- IGH之datagram_pair.h/c文件解析

EtherCAT主站IGH-- 4 -- IGH之datagram_pair.h/c文件解析 0 预览一 该文件功能datagram_pair.c 文件功能函数预览 二 函数功能介绍datagram_pair.c 中主要函数的作用1. ec_datagram_pair_init2. ec_datagram_pair_clear3. ec_datagram_pair_process 三 h文件翻译四 c文件翻译该…

专题五:Spring源码之初始化容器上下文

上一篇我们通过如下一段基础代码作为切入点&#xff0c;最终找到核心的处理是refresh方法&#xff0c;从今天开始正式进入refresh方法的解读。 public class Main {public static void main(String[] args) {ApplicationContext context new ClassPathXmlApplicationContext(…

鸿蒙本地签名不匹配问题

连接鸿蒙手机运行项目报如下错误 这是由于本地签名和鸿蒙设备签名不匹配导致的&#xff0c;需要注释掉如下代码&#xff0c;选择file project 自动签名 勾选auto选项&#xff0c;会在build-profile.json5中生成一个签名&#xff0c;然后运行就ok了~

【Lua】脚本入门

文章目录 总述一、Lua概述二、Lua环境安装三、Lua基本语法四、Lua的库和扩展五、Lua的应用场景六、学习资源 语法1. Lua基本语法示例变量和数据类型控制结构函数 2. Lua标准库示例字符串操作数学函数文件I/O 3. Lua作为脚本扩展示例&#xff08;假设Lua嵌入在某个应用程序中&am…

vscode python格式化

插件 Black Formatter Black 默认会遵循 PEP 8 的规范&#xff0c;可配置的参数很少&#xff0c;用的人很多。 setting.json 配置&#xff0c;更改插件的每行字符数限制 {"[python]": {"editor.defaultFormatter": "ms-python.black-formatter"…

Redis命令大全(基础版)

一、基础命令 redis-server --service-start # 开启服务 redis-server --service-stop # 停止服务redis-cli # 进入redis界面redis界面操作&#xff1a; ping # 检测状态&#xff0c;返回pong证明连接正常set key value # 设置 key 字段的值为value&#xff0c;返回o…

创建一个Django用户认证系统

目录 1、Django2、Django用户认证系统User 模型&#xff1a;Authentication 视图&#xff1a;认证后端 (Authentication Backends)&#xff1a;Form 类&#xff1a;中间件 (Middleware)&#xff1a;权限和组 (Permissions and Groups)&#xff1a; 3、创建一个django用户认证系…

服务器的分类,主流服务器的应用场景

一、服务器分类 服务器可以按应用层次、体系架构、用途、外形等进行分类。以下是详细说明&#xff1a; 按应用层次分类 入门级服务器&#xff1a;这些服务器一般用于小型企业或部门的简单任务&#xff0c;如文件共享和打印服务。工作组级服务器&#xff1a;适用于中小型企业&…

html2canvas相关(生成图片)

根据 DOM 生成对应的图片 function export3png(row, type null) { html2canvas( document.querySelector(#bug), //要生成图片的dom节点 {useCORS: true, }) 图片跨域 .then((canvas) > { const saveUrl canvas.toDataURL(image/png) Canvas对象生成base64代码 co…

MNIST手写字体识别(算法基础)

快教程 10分钟入门神经网络 PyTorch 手写数字识别 慢教程 【深度学习Pytorch入门】 简单回归问题-1 梯度下降算法 梯度下降算法 l o s s x 2 ∗ s i n ( x ) loss x^2 * sin(x) lossx2∗sin(x) 求导得&#xff1a; f ‘ ( x ) 2 x s i n x x 2 c o s x f^(x)2xsinx x^…

uORF和non-overlap对翻译效率的影响

以下是重叠和非重叠上游开放阅读框&#xff08;uORFs&#xff09;对翻译效率影响的总结&#xff1a; 重叠uORFs&#xff1a; 重叠uORFs对主要编码区的翻译影响更为显著&#xff0c;因为它们直接与下游编码序列&#xff08;CDSs&#xff09;竞争核糖体结合。重叠uORFs的翻译起始…

在C++程序中嵌入quickjs实现C++和javascript互相调用

quickjs是一个C实现的轻量级javascript解析引擎&#xff0c;可以嵌入到C程序中&#xff0c;实现C和js代码的交互。 以下基于quickjs-ng这一社区分支实现样例代码演示利用quickjs编写程序进行C和js互相调用&#xff0c;支持linux和windows。 代码结构 quickjs_demo- quickjs-…