简体   繁体   English

如何在 Jetpack Compose 的 AndroidView 中使用 LaunchEffect?

[英]How can I use LaunchEffect in the AndroidView in the Jetpack Compose?

I want to use a LaunchEffect to the AndroidView for collecting data from the ViewModel Stateflow but I get an error.我想使用 AndroidView 的 LaunchEffect 从 ViewModel Stateflow 收集数据,但出现错误。 how can I fix it?我该如何解决?

在此处输入图像描述

You can run the LaunchedEffect only inside a @Composable function, this means that your lamba should me annotated with @Composable () -> Unit in order to be compatibile.您只能在@Composable function 内运行 LaunchedEffect,这意味着您的 Lamba 应该使用@Composable () -> Unit进行注释以便兼容。 But I'm not pretty sure that is a good practice.但我不太确定这是一个好习惯。

You are trying to use composable LaunchedEffect not inside composable scope.您正在尝试使用可组合的 LaunchedEffect 不在可组合的 scope 内。 Move launched effect outside of getMapAsync.将启动效果移到 getMapAsync 之外。

You can do something like.你可以做类似的事情。

@Composable
fun MapViewContainer {
   ...

   var mapIsReady by remember { mutableStateOf(false) }

   ...

    mapView.getMapAsync {
       mapIsReady = true
       ...
    }

    ...

    if (mapIsReady) {
       // do some compose things
    }
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在 jetpack compose 中正确使用 mutableStateflow 和 Launcheffect - Proper use of mutableStateflow with Launcheffect in jetpack compose 如何让 Jetpack Compose AndroidView 在新参数上运行新的 viewBlock 实例? - How can I make Jetpack Compose AndroidView run a new viewBlock instance on new parameters? 当创建它的参数更改时,如何使 Android Jetpack Compose AndroidView 被替换? - How can I make Android Jetpack Compose AndroidView be replaced when the parameters that created it change? Jetpack Compose:如何用 AndroidView 覆盖 Composable? - Jetpack Compose : How to overlay Composable with AndroidView? 如何将 CameraView 与 Jetpack Compose 结合使用? - How can I use a CameraView with Jetpack Compose? 在 Jetpack Compose 中动态显示 AndroidView - Dynamically show AndroidView in Jetpack Compose 如何在 Jetpack Compose 的 LazyColumn 中使用 LazyColumn? - How can I use LazyColumn in LazyColumn in jetpack compose? Jetpack Compose:深色主题中的 AndroidView 颜色 - Jetpack Compose: AndroidView Color in Dark Theme Jetpack Compose - 在配置更改时保留 AndroidView 的 state - Jetpack Compose - preserve state of AndroidView on configuration change AndroidView 在 Jetpack Compose 的 Box 中始终位于顶部 - AndroidView always on top in Box in Jetpack Compose
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM