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

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

Сообщение Anonymous »

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

Composable
код:

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

val testNumber by createFeedbackVM.testNumber.collectAsStateWithLifecycle()
LaunchedEffect(Unit) {
createFeedbackVM.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»