Преобразование потока в MutableStateFlow ⇐ Android
-
Гость
Преобразование потока в MutableStateFlow
Как преобразовать Flow в MutableStateFlow?
Существует функция stateIn, которая возвращает StateFlow, но не MutableStateFlow.
Мне нужно иметь возможность изменять данные для такого варианта использования:
private val someState = join(flow1, flow2) {state1, state2 -> applySomeTransformation (состояние1, состояние2) }.stateIn(viewModelScope, SharingStarted.Lazily, InitialState) забавное редактирование() { someState.update { //обновление } } Однако, поскольку stateIn возвращает StateFlow, я не могу вызвать обновление...
Пока я использую этот уродливый обходной путь:
private val someState = MutableStateFlow(initialState) в этом { объединить (поток1, поток2) {состояние1, состояние2 -> applySomeTransformation (состояние1, состояние2) }.на каждого { someState.value = это }.launchIn(viewModelScope) } Поскольку someState теперь является MutableStateFlow, я могу вызвать обновление, но это выглядит довольно некрасиво.
Как преобразовать Flow в MutableStateFlow?
Существует функция stateIn, которая возвращает StateFlow, но не MutableStateFlow.
Мне нужно иметь возможность изменять данные для такого варианта использования:
private val someState = join(flow1, flow2) {state1, state2 -> applySomeTransformation (состояние1, состояние2) }.stateIn(viewModelScope, SharingStarted.Lazily, InitialState) забавное редактирование() { someState.update { //обновление } } Однако, поскольку stateIn возвращает StateFlow, я не могу вызвать обновление...
Пока я использую этот уродливый обходной путь:
private val someState = MutableStateFlow(initialState) в этом { объединить (поток1, поток2) {состояние1, состояние2 -> applySomeTransformation (состояние1, состояние2) }.на каждого { someState.value = это }.launchIn(viewModelScope) } Поскольку someState теперь является MutableStateFlow, я могу вызвать обновление, но это выглядит довольно некрасиво.
Мобильная версия