Почему собранное значение StateFlow из ViewModel не обновляется синхронно?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Почему собранное значение StateFlow из ViewModel не обновляется синхронно?

Сообщение Anonymous »

Код: Выделить всё

Composable
код:

Код: Выделить всё

val testNumber by viewModel.testNumber.collectAsStateWithLifecycle()
LaunchedEffect(Unit) {
viewModel.changeTestNumberValue()
Log.d("TestNumber", "Test number in Composable = $testNumber")
}

Код: Выделить всё

ViewModel
код:

Код: Выделить всё

private val _testNumber = MutableStateFlow(0)
val testNumber = _testNumber.asStateFlow()

fun changeTestNumberValue() {
_testNumber.value = 1
Log.d("TestNumber", "Test number in ViewModel = ${_testNumber.value}")
}
Я ожидал, что эти два журнала (в модели просмотра и в компонуемом) будут записываться с номером теста = 1. Но это фактическое напечатанное значение:

Номер теста в ViewModel = 1

Номер теста в Composable = 0

Я знаю, что значение testNumber со временем будет обновлено, но я не понимаю, почему это не синхронно. Или вот как работает StateFlow (собирать асинхронно) ??

Подробнее здесь: https://stackoverflow.com/questions/789 ... chronously
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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