Transformation.switchmap 除非搜索词更改,否则不会返回结果

Transformation.switchmap not returning result unless search term changes

我有一个 LiveData,它需要根据搜索查询 return 个帐户,如果没有查询 return 所有帐户。这是我的代码,我在我的 ViewModel class 中使用过,但是在初始化时没有显示任何帐户,只有当我更改 searchTerm 时它才会开始显示结果,并且在将搜索词设为空时也会显示结果。

    val searchTerm = MutableLiveData<String>()

    val accounts : LiveData<List<AccountModel>> = Transformations.switchMap(searchTerm){

            if(it.isNullOrEmpty()){
                Transformations.map(accountRepository.accountDAO.getAccounts()){
                    it.toDomainModel()
                }
            }else{
                Transformations.map(accountRepository.accountDAO.getSearchedList(it)){
                    it.toDomainModel()
                }
            }

        }

谁能指导我我做错了什么。

谢谢

你应该使用初始值。在您的 searhTerm 获得第一个值之前,您的 switchMap 没有被触发。

val searchTerm = MutableLiveData<String>("")