首页 > 解决方案 > @Composable 调用只能在 @Composable 函数中显示的 @Composable 函数错误的上下文中发生

问题描述

我的@Composable注释有问题。我在一个@Composable函数中,但它在这里显示一个错误:

Column {
    Text(
        text = "Rutinas",
        style = TextStyle(fontSize = 28.sp, fontWeight = FontWeight.ExtraBold),
        modifier = Modifier.padding(16.dp)
    )

我想这是因为我在做的时候正在改变上下文.let,但我不知道如何解决它。

完整代码:

@Composable
fun RutinaList(
    rutinasViewModel: RutinasViewModel = viewModel(
        factory = RutinasViewModelFactory(
            RutinasRepository()
        )
    )
) {
    val rutinasList = rutinasViewModel.getRutinasInfo().collectAsState(initial = null).value
    val listOfRutinas = rutinasList.querySnapshot?.toObjects(Rutina::class.java)
    listOfRutinas?.let { rutina ->
        Column {
            Text(
                text = "Rutinas",
                style = TextStyle(fontSize = 28.sp, fontWeight = FontWeight.ExtraBold),
                modifier = Modifier.padding(16.dp)
            )

            LazyColumn(modifier = Modifier.fillMaxHeight()) {
                items(listOfRutinas) {
                    Card(
                        modifier = Modifier
                            .fillMaxWidth()
                            .padding(16.dp),
                        shape = RoundedCornerShape(16.dp)
                    ) {
                        RutinaDetails(rutina)
                    }
                }
            }
        }
    }
}

标签: androidkotlinandroid-jetpack-compose

解决方案


推荐阅读