LiveData初始化

问题描述 投票:0回答:2

我的

ViewModel
中有 2 个实时数据对象:

private val _myData : LiveData<String> = myRepository.getData()
val myDataAvailable: LiveData<Boolean> = _myData.map { it != null }

只要repo不发出值,myDataAvailable就不会被初始化。将

myDataAvailable
的初始值设置为 false 的最佳做法是什么?

kotlin android-livedata
2个回答

0
投票
与 Flow 相比,LiveData 操作非常有限。您可以使用 Flows 作为完成您想要的事情的中间方式:

val myDataAvailable: LiveData<Boolean> = flow { emit(false) emitAll(_myData.map { it != null }.asFlow()) }.asLiveData()
    
© www.soinside.com 2019 - 2024. All rights reserved.