【发布时间】:2021-02-07 20:59:46
【问题描述】:
在 Viewmodel 中使用 LiveData,我们可以像这样使用 switchMap 或 Transformations.map
val recipesList = cuisineType.switchMap { repository.getDisplayRecipes(it.cuisineType).asLiveData() }
使用 StateFlow 执行此操作的最佳方法是什么?我知道我们可以像下面这样使用地图,但是这会返回我 Flow
val recipeListFlow = cuisineTypeStateFlow.map {
repository.getDisplayRecipes(it.cuisineType)
}
【问题讨论】:
-
您必须使用
stateIn()将辅助流转换为StateFlow。它们不提供返回热流的转换函数(还没有?)。
标签: android kotlin viewmodel android-livedata kotlin-stateflow