我在喷气背包写作课上有这样一节课:

class MainActivity : ComponentActivity(){

    private var viewModel: MAViewModel = MAViewModel()
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            AplicacionCiudadesTheme {
                val navController = rememberNavController()
                NavHost(navController = navController, startDestination = "splash") {
                    composable("splash") {
                        SplashScreen(navController)
                    }
                    composable("main") {
                        val fichasState = viewModel.fichas.collectAsState()
                        val listaFichas = remember {
                            fichasState
                        }
                       * MainScreen(listaFichas)*
                    }
                }
            }
        }
    }
}

类MAViewModel:

class MAViewModel : ViewModel() {
    private val _fichas = MutableStateFlow<List<FichaX>>(emptyList())
    val fichas: StateFlow<List<FichaX>> get() = _fichas

    init {
        listarFichas()
        Log.i("Info", "$_fichas")
    }

    private fun listarFichas() {
        viewModelScope.launch {
            val fichasService = fichasRepo.listFichas(
                Resources.idCategoriaPadre,
                Resources.idIdioma,
                Resources.idProyecto
            )
            _fichas.value = fichasService.fichas
        }
    }
}

当我调用MainScreen时,listaFichas向我显示以下错误:

type mismatch
require: List<FichaX>
found: State<List<FichaX>>

MainScreen是一个接收类型为FichaX的对象等列表的类,记住不能正确工作

推荐答案

You must use listaFichas.value.
If you want to use listaFichas without .value, You must declare your remember like this:

val listaFichas by remember {
    fichasState
}

Kotlin相关问答推荐

在Kotlin Jetpack中重用下拉菜单

导入org.gradle.jvm.toolchain.internal.JavaToolchainFactory未解析引用:Java工具链工厂

将基于注册的服务转换为流

为什么Kotlin函数参数名会 destruct 方法调用?

Kotlin扩展函数未调用Hibernate/JPA中的重写函数

为什么会出现Kotlin.Unit错误以及如何修复它?

Kotlin SIZE_BYTES

使用 Compose for Desktop Bundle 文件

即使 Kotlin 的 `Map` 不是 `Iterable`,它如何以及为什么是可迭代的?

如何在 Hibernate Panache 中进行部分搜索

判断 AAR 元数据值时发现的一个或多个问题:

在 Koin 中提供一个 Instance 作为其接口

Firebase 权限被拒绝

使用 Paging 3 时保存并保留 LazyColumn 滚动位置

如何在使用 Gradle 的 AppEngine 项目中使用 Kotlin

为什么 Kotlin Pair 中的条目不可变?

如何捕获传递给模拟函数的参数并返回它?

空对象引用上的 TransitionSet ArrayList.size()

用于代码生成的ANTLR工具版本4.7.1与当前运行时版本4.5.3不匹配

你如何在 Kotlin 中注释 Pair 参数?