为了在StateFlow上实现与Transformation.map()相同的功能,我使用了以下代码,它工作得很好:
val menuCategoryNames = _menuCategories.mapLatest { menuCategories ->
menuCategories.map { "${it.name}" }
}.stateIn(viewModelScope, SharingStarted.Lazily, emptyList())但是它看起来很丑陋,有没有办法让它更易读,更优雅呢?
发布于 2021-08-12 03:27:11
我为这种情况创建了以下扩展:
inline fun <T, R> Flow<Iterable<T>>.mapLatestIterable(crossinline transform: (T) -> R): Flow<List<R>> =
mapLatest { it.map(transform) }你可以这样使用它:
_menuCategories
.mapLatestIterable { "${it.name}" }
.stateIn(viewModelScope, SharingStarted.Lazily, emptyList())https://stackoverflow.com/questions/68750231
复制相似问题