我有一个类型为
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
时,它具有我用作参数的类型,但为什么这次不呢?
这真的很奇怪,为什么它有一个返回布尔值的委托,并在您尝试在 compose 版本 1.5.4 上读取它时抛出异常。并且不允许您也添加括号。
您可以使用
SnapshotStateMap<String, Boolean>
而不是 mutableStateMapOf
从
=
获得
by
val dataPool = remember {
mutableStateMapOf("archive" to true, "pending" to false)
}