鸿蒙开发 数组改变,ui渲染没有刷新

news2024/12/23 8:25:05

问题描述:
数组push, 数组长度改变,ui也没有刷新
打印出了数组 console.log(this.toDoData.map(item => `${item.name}`).join(', '), this.toDoData.length)
在这里插入图片描述
原代码:

        Text('+')
          .fontSize(36)
          .margin({ right: 40 })
          .onClick(() => {
            TextPickerDialog.show({ // 文字选择弹窗
              range: this.availableThings,
              onAccept: (item:TextPickerResult) => {
                // 这里有点问题,数组新增 ui没有刷新
                let obj:ToDo = new ToDo(`${item.value}`)
                this.toDoData.push(obj)
                console.log(this.toDoData.map(item => `${item.name}`).join(', '), this.toDoData.length)
              }
            })
          })
        List({ space: 10 }){
          ForEach(this.toDoData, (toDoItem:ToDo) => {
            ListItem(){
              ToDoListItem({
                toDoItem: toDoItem,
              })
            }
          },(toDoItem: ToDo) => toDoItem.key.toString())
        }

这个问题和列表渲染的key有关系,也就是(toDoItem: ToDo) => toDoItem.key.toString()这段代码除了问题,这个key有可能重复,于是做了以下修改:

        List({ space: 10 }){
          ForEach(this.toDoData, (toDoItem:ToDo, i:number) => {
            ListItem(){
              ToDoListItem({
                toDoItem: toDoItem
              })
            }
          },
          	// 这里删除或者重新渲染key,使其不重复即可刷新列表
            // (toDoItem: ToDo) => toDoItem.key.toString()
            (i: number) => i.toString() 
          )
        }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2083803.html

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

相关文章

在SpringBoot项目中使用多线程(配合线程池)加快从MySQL导入数据到ElasticSearch的速度

文章目录 1. 准备工作1.1 索引库1.2 建表1.3 实体类1.3.1 item.java1.3.2 itemDocument.java 1.4 编写配置文件1.5 编写 Mapper 类和 Service 类 2. 没有使用多线程的情况2.1 编码2.2 测试结果 3. 使用多线程(配合线程池)的情况3.1 自定义类,…

EM-7肽;EM-7-NH2;CAS:289632-61-7

【EM-7 简介】 EM-7,也被称为EM-7-NH2,其化学名称为[D-Glu5,D-Trp7,9,10]-Substance P (5-11),分子式为C57H66N12O10S,分子量为1111.273。 【中文名称】(D-谷氨酰 5,D-色氨酰 7,9,10)-物质 P (5-11) 【英文名称】(D-Glu5,D-Trp7…

openlayers+vite+vue3实现规划某一特定行政区(二)

在前一期实现离线地图初始化的基础上,本文中主要阐述如何实现规划某一特定行政区,并展示其行政区的区县名称。 提示:因前文中阐述了如何实现离线地图的初始化,所以在此不再进行书写并详解初始化的过程和流程,如有不明…

Task-Embedded Control Networks for Few-Shot Imitation Learning

发表时间:CoRL 2018 论文链接:https://readpaper.com/pdf-annotate/note?pdfId4500197057754718210&noteId2424798567891365120 作者单位:Imperial College London Motivation:就像人类一样,机器人应该能够利用来…

力扣经典题目之->另一颗树的子树(subRoot是否是root的子树)

一:题目 本题需要用到力扣经典题目之->相同的树(递归判断两颗二叉树是否相同)-CSDN博客 中的isSameTree,直接cv即可。 二:代码 三:解释 第一个函数: 力扣经典题目之->相…

模型 分形理论

系列文章 分享 模型,了解更多👉 模型_思维模型目录。自相似,无限细节。 1 分形理论的应用 1.1 字节跳动的分形创新增长引擎 字节跳动作为一家全球领先的科技公司,其快速的发展和创新能力在业界引起了广泛关注。公司通过分形创新…

大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

使用myAGV、Jetson Nano主板和3D摄像头,实现了RTAB-Map的三维建图功能!

引言 在现代机器人技术中,高精度的环境感知与建图是实现自主导航的关键。本文将展示如何使用myAGV Jetson Nano移动平台搭载Jetson Nano BO1主板,结合RTAB-Map和3D相机,实现更加立体和细致的环境建图。myAGV Jetson Nano具备SLAM雷达导航功能…

es的简易dsl语句

数据模式为文档,_doc格式数据,也就是json 数据 es根据_id查询数据 GET /index_name/_doc/document_id es根据_id删除数据 DELETE /index_name/_doc/document_id es查询mapping结构 GET /index_name/_mappings es查询index下所有数据(突破100…

9、LLaMA-Factory项目微调介绍

1、LLaMA Factory 介绍 LLaMA Factory是一个在GitHub上开源的项目,该项目给自身的定位是:提供一个易于使用的大语言模型(LLM)微调框架,支持LLaMA、Baichuan、Qwen、ChatGLM等架构的大模型。更细致的看,该项…

UG NX二次开发(C++)-获取曲面的相切曲面

文章目录 1、前言2、创建一个三维模型3、获取相切曲面的方法3、测试结果1、前言 最近一段时间,QQ群中的群友总问我一个问题,那就是如何获取曲面的相切曲面,我今天就把这个方法写出来,以帮助读者。 在UG二次开发中,查询了帮助文档,没有找到获取相切曲面的函数。所以采用N…

「C++系列」继承

文章目录 一、继承1. 基本概念2. 继承类型①公有继承(Public Inheritance)②私有继承(Private Inheritance)③保护继承(Protected Inheritance) 3. 继承的语法4. 构造函数和析构函数①构造函数案例②析构函…

单链表的问题(2)

1.对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。 这个我们可以运用双指针来解决这个…

爆改YOLOv8|利用全新的聚焦式线性注意力模块Focused Linear Attention 改进yolov8(v1)

1,本文介绍 全新的聚焦线性注意力模块(Focused Linear Attention)是一种旨在提高计算效率和准确性的注意力机制。传统的自注意力机制在处理长序列数据时通常计算复杂度较高,限制了其在大规模数据上的应用。聚焦线性注意力模块则通…

EmguCV学习笔记 C# 7.1 角点检测

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

Excel中让第一行始终显示

要在Excel中让第一行始终显示,你可以使用冻结窗格功能。具体步骤如下: 打开需要设置第一行一直显示的工作表。将光标定位在工作表内任意一个单元格内。选择“视图”菜单,单击工具栏中的“冻结窗格”命令。在弹出的下拉菜单中选择“冻结首行”…

字母的大小写转换(tolower、toupper、transform)

字母的大小写转换(tolower、toupper、transform) 1. tolower()、toupper()函数 (这个在之前的一篇文章 “字符串中需要掌握的函数总结(1)”中有较为详细的介绍。&#…

时利和:如何提升工装夹具的加工质量?

在机械加工领域,工装夹具起着至关重要的作用。它不仅能够提高生产效率,还能保证加工精度,确保产品质量的稳定性。那么,如何提升工装夹具的加工质量呢?以下是时利和整理分享的几个关键因素。 一、精准的设计 工装夹具的设计是决定…

使用物联网卡访问萤石云的常见问题

使用物联网卡接入萤石开放平台时经常遇到各种问题,这边总结了常见的一些 用的是哪家运营商的卡? 电信 移动 联通(申请的时候可以自主选择) 卡有什么限制? 定向流量卡,只能访问萤石云平台,只能…

完美解决Jenkins重启后自动杀掉衍生进程(子进程)问题

完美解决Jenkins重启后自动杀掉衍生进程(子进程)问题 本文中使用的Jenkins版本为Version 2.452.3 先罗列一下前置问题:Jenkins任务构建完成自动杀掉衍生进程 用过Jenkins的都知道,Jenkins任务构建完成后,是会自动杀掉衍生进程,这…