我想在可组合函数的回调中调用一个挂起函数。
suspend fun getLocation(): Location? { /* ... */ }
@Composable
fun F() {
val (location, setLocation) = remember { mutableStateOf<Location?>(null) }
val getLocationOnClick: () -> Unit = {
/* setLocation __MAGIC__ getLocation */
}
Button(onClick = getLocationOnClick) {
Text("detectLocation")
}
}
如果我会使用 Rx,那么我可以 subscribe
。
我可以做 invokeOnCompletion
然后 getCompleted
,但该 API 是实验性的。
I can’t use launchInComposition
in getLocationOnClick
because launchInComposition
is @Composable
and getLocationOnClick
can not be @Composable
。
在 @Composable
函数内部的常规函数中获得挂起函数结果的最佳方法是什么?
原文由 Nycta 发布,翻译遵循 CC BY-SA 4.0 许可协议
创建一个协程作用域,绑定到可组合项的生命周期,并使用该作用域调用您的挂起函数