Потокобезопасность snapshotFlow в Jetpack Compose ⇐ Android

Форум для тех, кто программирует под Android
Anonymous
Потокобезопасность snapshotFlow в Jetpack Compose

Сообщение Anonymous »

Я прохожу курс «Расширенное состояние и побочные эффекты в Jetpack Compose», и в конце этой главы у меня есть этот код.
@Composable
fun ToDestinationUserInput(onToDestinationChanged: (String) -> Unit) {
val editableUserInputState = rememberEditableUserInputState(hint = "Choose Destination")

...

val currentOnDestinationChanged by rememberUpdatedState(onToDestinationChanged)
LaunchedEffect(editableUserInputState) {
snapshotFlow { editableUserInputState.text }
.filter { !editableUserInputState.isHint }
.collect {
currentOnDestinationChanged(editableUserInputState.text)
}
}
}

и редактируемый UserInputState выглядит следующим образом:
class EditableUserInputState(private val hint: String, initialText: String) {
var text by mutableStateOf(initialText)

val isHint: Boolean
get() = text == hint

...
}

Правда ли, что после первой из двух следующих строк какой-то другой поток может изменить editableUserInputState.text и часть фильтра проверит обновленное значение вместо одного мы попали в первую очередь?
snapshotFlow { editableUserInputState.text }
.filter { !editableUserInputState.isHint }


Подробнее здесь: https://stackoverflow.com/questions/792 ... ck-compose

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