Brett Best
@Composable fun LegalBodyContent(contentPadding: InnerPadding = InnerPadding(), onLegal: () -> Unit) { val loader = remember { LegalLoader() } val networkService = ActiveAppContainer.current.networkService launchInComposition { loader.load(networkService) } Crossfade(current = loader.state) { loaderState -> when (loaderState) { is LegalLoader.State.Loading -> LegalBodyContentLoading() is LegalLoader.State.Loaded -> LegalBodyContentLoaded(loaderState) is LegalLoader.State.Error -> LegalBodyContentError(loaderState) } Button(onClick = { // How to call loader.load() in here? }) { Text("Refresh") } } }
Adam Powell
rememberCoroutineScope
val scope = rememberCoroutineScope() launchInComposition(scope) { loader.load(networkService) }
scope.async { loader.load(networkService) }
Deferred result is never used
Zach Klippenstein (he/him) [MOD]
launch
async
A modern programming language that makes developers happier.