【问题标题】:Type State<> has no method [Android Studio Error] Jetpack Compose类型 State<> 没有方法 [Android Studio 错误] Jetpack Compose
【发布时间】:2021-11-05 22:12:24
【问题描述】:

当我试图从我的状态中获得价值时,我遇到了问题

在我的视图模型中

val items = MutableStateFlow<MutableList<String>>(mutableListOf())

在@Composable 屏幕中

val items: MutableList<String> by viewModel.state.items.collectAsState().value

这里出现错误:

类型“MutableList”没有方法 'getValue(Nothing?,KProperty)' 因此它不能作为 委托

我尝试将 val 更改为 var 并添加如下所示的包,但仍然出现相同的错误

import androidx.compose.runtime.*
import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue

我错过了什么吗?

【问题讨论】:

  • 通过by阅读时不需要value ;)
  • val items by viewModel.items.collectAsState() 应该足够了

标签: android-studio kotlin android-jetpack-compose android-jetpack


【解决方案1】:

替换

val items: MutableList<String> by viewModel.state.items.collectAsState().value

val items: MutableList<String> by viewModel.state.items.collectAsState()

或与

val items: MutableList<String> = viewModel.state.items.collectAsState().value

使用by 时,您可以直接访问value

【讨论】:

    猜你喜欢
    • 2021-06-09
    • 2021-01-05
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多