Преобразование потока в MutableStateFlowAndroid

Форум для тех, кто программирует под 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, я могу вызвать обновление, но это выглядит довольно некрасиво.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»