代码之家  ›  专栏  ›  技术社区  ›  t3chb0t

如何修改mutableStateMapOf的值?

  •  0
  • t3chb0t  · 技术社区  · 2 年前

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

    0 回复  |  直到 2 年前
        1
  •  1
  •   Thracian    2 年前

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

    你可以得到 SnapshotStateMap<String, Boolean> 从…起 mutableStateMapOf 具有 = by

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