news 2026/4/3 9:58:58

关于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/4 1:03:57

Holistic Tracking部署指南:边缘计算环境配置详解

Holistic Tracking部署指南&#xff1a;边缘计算环境配置详解 1. 引言 1.1 AI 全身全息感知的技术背景 随着虚拟现实、数字人和智能交互系统的快速发展&#xff0c;单一模态的人体感知技术&#xff08;如仅姿态估计或仅手势识别&#xff09;已难以满足高沉浸式应用的需求。在…

作者头像 李华
网站建设 2026/4/1 11:02:50

Holistic Tracking部署教程:远程协作动作识别系统

Holistic Tracking部署教程&#xff1a;远程协作动作识别系统 1. 引言 随着远程协作、虚拟直播和元宇宙应用的快速发展&#xff0c;对高精度、低延迟的人体动作识别技术需求日益增长。传统的姿态估计方案往往只能单独处理面部、手势或身体动作&#xff0c;难以实现多模态感知…

作者头像 李华
网站建设 2026/4/1 1:24:24

游戏画面模糊怎么办?DLSS版本升级让你的游戏画质瞬间提升!

游戏画面模糊怎么办&#xff1f;DLSS版本升级让你的游戏画质瞬间提升&#xff01; 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 你是否经常遇到游戏中画面模糊、细节丢失的困扰&#xff1f;想要在不升级显卡的情况下…

作者头像 李华
网站建设 2026/4/2 18:20:44

DLSS Swapper实战手册:游戏性能优化的终极武器

DLSS Swapper实战手册&#xff1a;游戏性能优化的终极武器 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 还在为老旧游戏卡顿而烦恼吗&#xff1f;当你发现心爱的游戏因为过时的DLSS版本而表现不佳时&#xff0c;DLSS…

作者头像 李华
网站建设 2026/3/27 11:23:38

DLSS Swapper终极指南:轻松实现游戏画质与性能的完美平衡

DLSS Swapper终极指南&#xff1a;轻松实现游戏画质与性能的完美平衡 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 想要在游戏中获得最佳画质表现&#xff0c;同时享受流畅的游戏体验吗&#xff1f;DLSS Swapper正是…

作者头像 李华