Код: Выделить всё
class ScreenViewModel(...) : ViewModel() {
(...)
private val _uiState = MutableStateFlow(ScreenUiState.Loading)
val uiState: StateFlow = _uiState
(...)
private fun doOnSuccess(data: List) {
_uiState.value = ScreenUiState.Success(data)
fetchNewData()
}
private fun fetchNewData() {
viewModelScope.launch {
repository.getNewData()
//The place where to update ui state with new data...
}
}
}
class Repository() {
fun getNewItems(): Flow {
return dataSource.newItems()
}
}
Один подход может заключаться в сборе второго потока и обновлении первого потока (тот, который содержит состояние ui). Но, насколько я понял, сбор потоков в ViewModel не рекомендуется.
Как я могу решить эту проблему? Есть ли способ справиться с этим?
Подробнее здесь: https://stackoverflow.com/questions/792 ... -viewmodel
Мобильная версия