如何使用参数在 ViewModel 中收集流

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

我在存储库中有一个函数,它根据参数从网络或远程数据源返回响应。

suspend fun getBooks(isNetwork: Boolean) : Flow<Books>

我想在 View 模型中收集它,但每次调用 ViewModel 方法时都会创建一个新的协程。我知道我应该在暴露给 UI 层之前映射流程但是我如何将参数传递给函数?

fun getBooks(isNetwork: Boolean) {
        viewModelScope.launch {
            bookRepository.getBooks(isNetwork).collectLatest { books ->
             ...
            }
        }
}

这里getBooks函数也是用来做网络调用的,需要多次调用。每次从 ViewModel 调用 getBooks 时,都会创建一个新的协程,因此会创建多个观察者。

android mvvm coroutine kotlin-flow
© www.soinside.com 2019 - 2024. All rights reserved.