[英]How do I get previous value from SharedFlow after Activity recreate/Configuration change in Jetpack Compose?
[英]How to use SharedFlow in Jetpack Compose
使用 state 流我可以使用
val items by myViewModel.items.collectAsState()
我想共享流不能以這種方式使用。 共享流程是否適用於 Compose?
SharedFlow 應用於一次性事件(導航、吐司等...)。
所以這是收集 SharedFlow 的方法:
@Composable
fun <T> Flow<T>.collectAsEffect(
context: CoroutineContext = EmptyCoroutineContext,
block: (T) -> Unit
) {
LaunchedEffect(key1 = Unit) {
onEach(block).flowOn(context).launchIn(this)
}
}
從技術上講,您可以像任何其他Flow
一樣將其收集為 state - 具有初始值:
flow.collectAsState(initial = 0)
這個 state 將具有在呈現視圖期間流發出的最后一個值,或初始值。 不過,我不確定這是否有意義。
但您也可以將其用作傳遞需要一次性響應的事件的一種方式,如本答案所示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.