news 2026/4/17 0:11:00

关于compose的remember

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
关于compose的remember

之前有一段代码这样的

@Composable fun WeekDays(checkInList: List<WidgetCheckInBean>?) { val today = LocalDate.now() val daysOfWeek = remember { // 获取最近7天的星期信息 getLastSevenWeekdays(today) } ...... }

根据当前时间,获取过去七天的时间列表,

然后出现了一个bug,更改手机时间,虽然,,大部分人不会这么做,但是更新时间之后呢呢,会触发 checkInList更新,获取最新数据,但是这时候,由于 daysOfWeek 并没有任何触发更新机制,导致daysOfWeek 还是remember中的原来的值,导致时间还是原来的时间列表。

所以这个我们需要加上daysOfWeek 和 checkInList的联动更新

就用到了

val daysOfWeek = remember(checkInList) { val today = LocalDate.now() // 获取最近7天的星期信息 getLastSevenWeekdays(today) }

让checkInList变成daysOfWeek 触发更新的key。

etpack Compose 的一个特点是,当状态(State)发生变化时,相关的 Composable 函数会重组(Recomposition),也就是函数会重新执行。•如果没有 remember:每次重组都会导致函数内的所有代码重新执行。这意味着在函数内创建的任何局部变量都会被重新初始化为其默认值。这会导致状态丢失,例如,一个计算结果、一个随机数、一个列表,都会在每次UI更新时被重置。•有了 remember:remember { ... } 块内的计算逻辑只会在 首次组合(Initial Composition)时执行一次。在后续的重组过程中,Compose 会跳过这个块的执行,直接返回它“记住”的那个计算结果。

通过key,让他更智能的更新,不必要的时候不更新,只是key变化了,才触发更新

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 1:43:07

五分钟搞懂计算机网络核心概念

从零到一&#xff0c;用工程师的视角理解网络本质一、开场白&#xff1a;为什么网络知识对搭建服务器如此重要&#xff1f;在真正动手搭建服务器之前&#xff0c;我们必须先理解一个核心问题&#xff1a;服务器是如何与外界通信的&#xff1f;​ 这就离不开计算机网络的基础知识…

作者头像 李华
网站建设 2026/4/16 19:08:59

快速掌握DLSS Swapper:游戏DLSS版本自由切换神器

快速掌握DLSS Swapper&#xff1a;游戏DLSS版本自由切换神器 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 还在为游戏更新后DLSS效果变差而烦恼&#xff1f;想要灵活控制不同游戏的DLSS版本&#xff1f;DLSS Swapper…

作者头像 李华
网站建设 2026/4/16 19:15:35

AI全身感知实战指南:Holistic Tracking在VR游戏开发

AI全身感知实战指南&#xff1a;Holistic Tracking在VR游戏开发 1. 引言 1.1 背景与目标 虚拟现实&#xff08;VR&#xff09;游戏的沉浸感正从“视觉体验”向“交互革命”演进。传统手柄操控已无法满足用户对自然交互的期待&#xff0c;而动作捕捉技术长期受限于设备成本和…

作者头像 李华
网站建设 2026/4/9 15:33:16

终极指南:5步掌握DLSS版本管理工具,游戏性能飙升秘籍

终极指南&#xff1a;5步掌握DLSS版本管理工具&#xff0c;游戏性能飙升秘籍 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 还在为游戏中DLSS版本过旧而烦恼吗&#xff1f;想要在不更新整个游戏的情况下享受最新DLSS技…

作者头像 李华
网站建设 2026/4/16 17:23:19

全维度感知系统:MediaPipe Holistic模型调优指南

全维度感知系统&#xff1a;MediaPipe Holistic模型调优指南 1. 引言&#xff1a;AI 全身全息感知的技术演进 随着虚拟现实、数字人和智能交互系统的快速发展&#xff0c;单一模态的人体感知技术已难以满足复杂场景下的应用需求。传统方案中&#xff0c;人脸、手势与姿态通常…

作者头像 李华
网站建设 2026/4/12 9:13:53

DLSS Swapper构建系统深度剖析:从模块化设计到高效部署

DLSS Swapper构建系统深度剖析&#xff1a;从模块化设计到高效部署 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 在现代软件开发实践中&#xff0c;构建系统扮演着至关重要的角色&#xff0c;它不仅决定了项目的编译…

作者头像 李华