【问题标题】:Composable invocations can only happen from the context of a Composable function可组合调用只能在可组合函数的上下文中发生
【发布时间】:2021-10-18 13:59:13
【问题描述】:

我有疑问需要致电scope.launch

   composeView {
            MyTheme {
                // Create a CoroutineScope that follows this composable's lifecycle
                val composableScope = rememberCoroutineScope()
                LaunchedEffect(key1 = "", block = {
                    composableScope.launch {
                        val b: Boolean = database.query()
                    }
                })
            }

现在我想将b 传递给Composble

@Composable
    private fun Content(b: Boolean) {

    }

自从@Composable invocations can only happen from the context of a @Composable function 之后,我应该如何称呼内容?如果我将内容放在启动块中,我会收到上述错误消息。

【问题讨论】:

    标签: android android-jetpack-compose


    【解决方案1】:

    您可以使用作用域进行后台调用,例如从数据库中获取数据,并利用可变状态将其传递给可组合对象。

    例如:

    val foo = remember { mutableStateOf("") } 
    
    LaunchedEffect(true) { 
      foo.value = bar()
    }
    
    Text (text = foo.value)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      相关资源
      最近更新 更多