LiveData 转换为 StateFlow / SharedFlow

Axe*_*xel 5 kotlin android-livedata kotlin-flow kotlin-stateflow kotlin-sharedflow

StateFlow / SharedFlow 中此实时数据转换的等效代码是什么?

val myLiveData: LiveData<MyLiveData> = Transformations
                    .switchMap(_query) {
                        if (it == null) {
                           AbsentLiveData.create()
                        } else {
                           repository.load()
                     }
Run Code Online (Sandbox Code Playgroud)

基本上,我想监听每个查询更改以对返回的内容做出反应。因此,任何类似于使用 StateFlow / SharedFlow 的东西都是受欢迎的。

raj*_* ks -2

switchMap已弃用flows,应使用flatMaptransform或中transformLatest的任一个将一种类型的流转换为其他类型的流。一个例子是

val myFlow = flowOf<Int>().transform<Int, String> { flowOf("$it") }} 
Run Code Online (Sandbox Code Playgroud)

我想你可以对StateFlowor使用相同的逻辑SharedFlows