问题描述
StateFlow / SharedFlow 中这种实时数据转换的等效代码是什么?
val myLiveData: LiveData<MyLiveData> = Transformations
.switchMap(_query) {
if (it == null) {
AbsentLiveData.create()
} else {
repository.load()
}
基本上,我想听每个查询更改以对返回的内容做出反应。因此,欢迎使用类似于使用 StateFlow / SharedFlow 的任何东西。
解决方法
switchMap
在 flows
中已弃用,应使用 flatMap
、transform
或 transformLatest
之一将一种类型的流转换为其他类型。一个例子是
val myFlow = flowOf<Int>().transform<Int,String> { flowOf("$it") }}
我想您可以对 StateFlow
或 SharedFlows
使用相同的逻辑。