如何修改 mutableStateMapOf 的值?

问题描述 投票:0回答:1

我有一个类型为

mutableStateMapOf
:

的字段
var dataPool by mutableStateMapOf("archive" to true, "pending" to true)

我想通过

Checkbox
修改它的值,所以我尝试了这个:

 Checkbox(checked = true, onCheckedChange = {viewModel.dataPool["archive"]=it})

但是,Kotlin 向我展示了

dataPool
是一个
boolean
。怎么会?我以为我把它初始化为
map
。我不明白这里发生了什么。通常,当您初始化其中一个
mutableState
时,它具有我用作参数的类型,但为什么这次不呢?

kotlin android-jetpack-compose desktop-application
1个回答
0
投票

这真的很奇怪,为什么它有一个返回布尔值的委托,并在您尝试在 compose 版本 1.5.4 上读取它时抛出异常。并且不允许您也添加括号。

您可以使用

SnapshotStateMap<String, Boolean>
而不是
mutableStateMapOf
=
 获得 
by

val dataPool = remember {
    mutableStateMapOf("archive" to true, "pending" to false)
}
© www.soinside.com 2019 - 2024. All rights reserved.