Jetpack Создает поток обновлений ViewModel

#android-jetpack-compose

Вопрос:

Я использую подкачку в режиме просмотра, и подкачка возвращает поток

 
class WindViewModel : BaseViewModel() {

    lateinit var windList : Flow<PagingData<Wind>>

    fun getWindList(path: String) {
        windList = Pager(PagingConfig(pageSize = 20)) {
            WindSource(path, user.id)
        }.flow.cachedIn(viewModelScope)
    }

    fun like(wind: Wind) {

    }

}
 

Если мне нужно обновить поток подобным способом, как мне его обновить?

Ответ №1:

Вы можете попробовать использовать поток состояний для windList , потому что он позволяет напрямую обновлять значение потока с .value помощью свойства без необходимости использования области сопрограммы:

 private val _windList: MutableStateFlow(Wind())
val windList: StateFlow<Wind> = _windList
 

а затем соответствующим образом обновите свой поток fun like(wind: Wind) :

 fun like(wind: Wind) {
  _windList.value = windList.value.copy(##update changed properties here##)
}