@arteskin

Как переделать код, чтобы в state попадали правильные значения?

Flow эмитит 3 значения, которые нужно записать в MyState, однако с таким подходом в state попадает только последнее значение(3), что ожидаемо. Как переделать этот код, чтобы в first попало 1, в second 2 и в third, соответственно, 3?
data class MyState(
    val first: Int = 0,
    val second: Int = 0,
    val third: Int = 0
)

fun producer(): Flow<Int> = flow {
    for (i in 1..3) {
        emit(i)
    }
}

suspend fun main(){

    val state = mutableStateOf(MyState())

    coroutineScope {
        producer().onEach {
            state.value = MyState(
                first = it,
                second = it,
                third = it
            )
        }.launchIn(this)
    }

    println(state)
}
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
Jacen11
@Jacen11
никак. Оно так не работает и не должно. И так никто не делает. Не понимаю кейса, что в реальности то нужно?
данные конечно можно сохранять на каждое получение, но зачем?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы