我有一个问题。
在BrowseSample中,我们始终Transformations.switchMap()
观察一个输入LiveData并将repoRepository.search(search)
的值设置为结果。如下:
val results: LiveData<Resource<List<Repo>>> = Transformations
.switchMap(_query) { search ->
if (search.isNullOrBlank()) {
AbsentLiveData.create()
} else {
repoRepository.search(search)
}
}
但是对于我而言,我每次都只单击按钮以通过repoRepository.search(search)
获得新结果,这意味着我没有要观察的参数_query
。我能怎么做?
我已经将results
定义为val,所以无法每次在ViewModel中创建results = repoRepository.search(search)
。
如果将repoRepository返回类型从LiveData更改为Result,则可以在ViewModel中手动使用results.setValue(result)。但是从存储库返回非LiveData重新使用的权利吗?
我对此感到非常困惑……在许多情况下,我们没有可观察的输入参数,因此我们无法使用Transformations.switchMap()