我的
ViewModel
中有 2 个实时数据对象:
private val _myData : LiveData<String> = myRepository.getData()
val myDataAvailable: LiveData<Boolean> = _myData.map { it != null }
只要repo不发出值,myDataAvailable就不会被初始化。将
myDataAvailable
的初始值设置为 false 的最佳做法是什么?
MutableLiveData 的 API 文档说有一个 setValue 方法可以用来设置值。只需确保在存储库返回该对象之前使用初始值调用该对象即可。
val myDataAvailable: LiveData<Boolean> =
flow {
emit(false)
emitAll(_myData.map { it != null }.asFlow())
}.asLiveData()