kotlin 如何修改mutableStateMapOf的值?

envsm3lx  于 2023-11-21  发布在  Kotlin
关注(0)|答案(1)|浏览(169)

我有一个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时,它的类型是我用作参数的,但为什么这次不是呢?

cx6n0qe3

cx6n0qe31#

这真的很奇怪,为什么它有一个委托,返回一个布尔值,并抛出异常,当你试图阅读它的撰写版本1.5.4。
您可以使用=而不是bymutableStateMapOf获取SnapshotStateMap<String, Boolean>

val dataPool = remember {
    mutableStateMapOf("archive" to true, "pending" to false)
}

字符串

相关问题