mutableStateOf 和 mutableStateListOf 有什么区别?

2024-04-08

在与一个ViewModel and a List存储在那里,我通常遵循这种方法:

var characteristics by mutableStateOf(listOf<Characteristic>())

然后,我可以将数据分配给列表或修改它,并且 UI 将正确重构:

characteristics = issuesRepository.getCharacteristics()
characteristics = characteristics.plus(newCharacteristic)

然而,我最近偶然发现了几种包含关键字的方法mutableStateListOf(),然后将 List 分成两个单独的变量似乎是一种常见的做法,如下所示:

private val _characteristic = mutableStateListOf<Characteristic>()
val characteristic: List<Characteristic> = _characteristic

这些方法有何不同,其中一种被认为是最佳实践还是一种更清洁的方法?


Using mutableStateOf你正在创建一个可观察的对象。因此,只要将新实例分配给此状态,就会发生重组。 假设您希望在将新项目添加到列表后进行重组。在这种情况下,您需要创建此列表的副本,将 elemento 添加到此复制的列表中,然后将复制的列表分配给状态。

The mutableStateListOf创建一个可观察列表。您在此列表中执行的所有操作(添加、删除、更新)都将导致重组。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mutableStateOf 和 mutableStateListOf 有什么区别? 的相关文章

  • 防止系统字体缩放 - Jetpack Compose

    我正在尝试限制应用程序免受系统字体缩放的影响 我已经尝试了很多解决方案 但没有一个有帮助 他们中的大多数人都告诉我们使用 dp 而不是 sp 来确定文本大小 但在撰写中 如果我是正确的 我们只能使用 sp 因为它需要一个文本单元 有没有正确
  • Jetpack Compose - 布局可重用组件

    为了练习 Jetpack Compose 中的可重用组件 我开始了一些练习 见下图 正如我想象的那样 绿色行 输入行以及之间的行具有相同的结构 第一个元素获得了可用空间 第二个元素获得了 50 dp 最后一个元素获得了 70 dp 我尝试将
  • Kotlin 数据类中可变集合的防御性副本

    我想要一个接受只读列表的数据类 data class Notebook val notes List
  • 如何检查 SwitchPreference 的当前状态?

    我有一个SwitchPreference in my SettingsFragment kt根据它是否打开或关闭来更改图标和标题 这是代码 notificationsPreference onPreferenceChangeListener
  • 有没有办法理解安装错误代码的实际含义?

    我正在尝试应用内更新功能 但收到 FAILED 安装状态和 100 安装错误代码 有什么办法让我知道可能是什么原因造成的吗 我实现了灵活的应用内更新 并记录了每个步骤 遵循 Android 开发者教程here https developer
  • Kotlin 构造函数(主构造函数)

    我有一个关于 Kotlin 构造函数的问题 class abc constructor a Int constructor a Int e Int class def a Int constructor a Int e Int this a
  • 如何让 Kotlin 类型安全构建器在 Scala 中工作?

    Kotlin 很棒类型安全的构建者 https kotlinlang org docs reference type safe builders html这使得创建像这样的 dsl 成为可能 html head title The titl
  • 具有自定义计数标准的 RxJava 缓冲区/窗口

    我有一个 Observable 它发出许多对象 我想使用以下方法对这些对象进行分组 window or buffer运营 但是 不是指定count用于确定窗口中应有多少对象的参数我希望能够使用自定义标准 例如 假设可观察对象正在发出 a 的
  • 如何在 Kotlin Android 中正确使用 URL

    我想用 override fun onCreate savedInstanceState Bundle super onCreate savedInstanceState setContentView R layout activity m
  • Kotlin 中的数据绑定无法与视图绑定一起使用

    安卓工作室3 6 构建 gradle buildscript ext kotlin version 1 3 50 repositories google jcenter dependencies classpath com android
  • 在 Android 中处理多个回收器视图 [Kotlin]

    我遇到过这样的情况 一个布局上有 3 个 RecyclerView 他们以某种方式相互依赖 数据来自房间数据库 问题原型 问题陈述 假设您有类似 Floor1 Floor2 Floor3 等 的楼层 并且每个楼层内都有类似 Room1 Ro
  • LiveData无法观察到变化

    我正在更新一个ViewModel 中 DialogFragment 的 LiveData 值 但无法获取Fragment中的值 视图模型 class OtpViewModel private val otpUseCase OtpUseCas
  • 在撰写中自动滚动多行文本字段

    我有一个多行文本字段 如下所示 val scrollState rememberScrollState 0 TextField modifier Modifier fillMaxWidth height 75 dp verticalScro
  • @Service 中带有 Kotlin 的 Spring Boot @Autowired 始终为 null

    目前 我尝试使用 Kotlin 重写我的 Java Spring Boot 应用程序 我遇到了一个问题 在我所有的类中都用 Service依赖注入无法正常工作 所有实例都null 这是一个例子 Service Transactional o
  • 如何在Android首选项中正确接收和存储本地目录/路径?

    我想存储一个本地路径 内部或外部存储 用户可以在其中存储一些数据作为 Android 应用程序中的首选项 我希望用户在首选项中选择一个首选文件夹 默认文件夹是context externalMediaDirs它返回一个File我将其绝对路径
  • Android Mockito.verify 说参数不同!打印相同内容

    情况 我有一个界面Tracker其中有这个方法 fun trackEvent event String args Bundle null 我想验证是否使用特定的调用此方法event 被测试的内部对象调用此方法Bundle目的 所有事件都指定
  • Jetpack 在可滚动列中组合 LazyColumn

    这是我的情况 我必须在我的应用程序中显示从 API 收到的记录的详细信息 在此视图中 我可能需要也可能不需要基于字段显示来自另一个视图模型的一些数据 这是我的代码 OptIn ExperimentalMaterial3Api class C
  • LazyColumn - Items 关键参数的用途?

    有人可以解释一下它的主要目的是什么吗 key LazyListScope 的 items itemsIndexed 函数内的参数 如果我们指定该参数 我们会得到什么或不会得到什么 我不确定我是否理解与此参数相关的官方文档 key 代表该项目
  • Kotlin 中的单例类

    我想知道如何在 Kotlin 中创建一个单例类 以便我的 Util 类在每次应用程序执行时仅实例化一次 但是 当我将 Java 类转换为 kotlin 时 生成了以下代码 它是否正确 companion object private var
  • 在Android中绘制圆角矩形

    我已经发现这个问题 https stackoverflow com questions 5618402 how to draw rounded rectangle in android ui解决方案是这段代码

随机推荐

  • 将多个标记放入图层组中

    我正在尝试使用 for 循环创建多个标记 将坐标存储到数组中 然后 我想将这些标记放入图层组中 并能够使用 L control layers 显示 隐藏它们 问题是只会显示最后创建的标记 我知道这是与闭包和作用域相关的东西 但我是 Java
  • AndEngine - 根据父按钮是否被按下启用禁用的子按钮

    根据我目前的设置 感谢答案here https stackoverflow com questions 15116158 andengine drawing a line between level objects entites usin
  • 获取Sharepoint 2010中当前登录的用户

    我有一个向我显示调查的 Web 部件 我需要获取当前用户 以便我可以根据当前用户的权限隐藏或显示调查的某些信息 SPContext Current Web CurrentUser应该可以解决问题 它具有类似的功能IsSiteAdmin an
  • Python 请求中的 SSLError(读取操作超时)

    我有一个 python API 脚本 尽管使用了 但我的脚本有时会在这一行终止try except 这是代码 try r requests post URL data params headers headers timeout self
  • 当容器大小调整时如何重绘此处地图?

    今天我遇到了一个以前没有遇到或注意到的特殊问题 在 Here Maps 3 0 中设置地图时 我注意到 如果浏览器窗口 小 小于全屏 则在加载地图期间 即使将浏览器窗口大小调整为全屏的 如何更新此处地图的地图大小以占据分配的空间 我的安排如
  • 如何将存储库注入到工作单元?

    我已经实现了我的 UnitOfWork 以便它保留对所有存储库的引用 public interface IUnitOfWork void Commit void RollBack public interface IMyUnitOfWork
  • 如何停止 GHCi 中的无限评估?

    当我运行类似的东西时 Prelude gt cycle ab I can see an infinite printing of ab To stop it I just use Ctrl c And it works 当我跑步时 Prel
  • AWS:为 Cognito 触发器指定 Lambda 版本

    我有一个 Cognito 用户池和相应的身份池 我想调用 Lambda 函数的特定版本Post authentication或类似的其他触发器 尽管示例都有版本号 但我在控制台中没有看到指定版本代码的选项 http docs aws ama
  • 什么是代数数据类型 (ADT)?

    我听到人们在函数式编程中谈论了很多代数数据类型 不要与 抽象数据类型 混淆 我所知道的是 ADT 指的是某种复合 通常是递归 数据类型 例如树或数学表达式 In 维基百科 https en wikipedia org wiki Algebr
  • 关于外连接的默认/填充值

    以下是我正在使用的更大 复杂数据帧的微小 玩具版本 gt gt gt A key u v w x 0 a 0 757954 0 258917 0 404934 0 303313 1 b 0 583382 0 504687 NaN 0 618
  • 如何将非连续数字添加到范围中?

    我试图迭代范围 750 765 并添加非连续数字 769 770 774 如果我尝试在范围函数之后添加数字 它会返回范围列表 然后是各个数字 gt gt gt for x in range 750 765 769 770 774 print
  • 样式表被汉字接管/替换

    好吧 有些事情变得疯狂了 除非中国从我的 iepage 上的测试 style css 文件开始接管 好吧 我猜他们一开始就讨厌 IE 但无论如何 它加载时没有样式表 悲伤 我进入 Web 检查器 看到所有链接的文件都充满了 可能 中文字符
  • 无法初始化私有常量成员[重复]

    这个问题在这里已经有答案了 我想要一个int与我的类相关联 该类在该类的用户实例化它时设置 class MyClass public MyClass int x private const int x 为了不断初始化它 我尝试使用构造函数
  • 无法运行 XAMPP - MySql

    当我尝试启动 XAMPP MySql 时 它不起作用 我已经尝试修复它 但我找不到任何实际的解决方案 我希望你能找到问题所在 有日志 2019 06 26 9 08 35 0 Note InnoDB Mutexes and rw locks
  • 为了速度/性能什么时候应该、不应该脱离 OOP?

    在 Android 开发者文章中 Google 指出 您通常应该声明公共变量 而不是带有 getter 和 setter 的私有变量 以增强嵌入式设备的性能 我认为函数调用比仅仅写入地址更昂贵 我想知道 应该在多大程度上牺牲性能来坚持 OO
  • 如何在列表框中设置对齐格式

    我将值添加到列表框 for int i 0 i lt 2 i lbBeamValue Items Add Beam i ToString value1 i Angle i ToString value2 i 显示如下 Beam 0 0 12
  • 仅保留 JavaScript 对象中的某些属性

    我有一个对象 我想通过删除除某些特定属性之外的所有属性来修改对象 而不是克隆它 例如 如果我从这个对象开始 var myObj p1 123 p2 321 p3 p3 1 1231 p3 2 342 p4 23423 p99 p99 1 s
  • 截断分页中的页数

    这可能是一个非常愚蠢的问题 但我想不出任何可以帮助我走得更远的东西 我希望缩短页面导航中的数字数量 而不是像 1 2 3 4 5 6 7 8 我希望它像 1 2 7 8 当我去2 数字3现在应该可以在数字组中看到 这是我负责页码的代码 di
  • MySQL 最大用户连接数与最大连接数

    可悲的是 我在任何地方都找不到对此查询的任何直接解释 甚至在 MySQL 文档中也找不到 各个论坛上的一些人说 max user connections 永远不能大于 max connections 例如 如果一个用户有3 max user
  • mutableStateOf 和 mutableStateListOf 有什么区别?

    在与一个ViewModel and a List存储在那里 我通常遵循这种方法 var characteristics by mutableStateOf listOf