stateFlow.collectAsState()
а где именно я могу осуществлять проверку значения? прямо в композабле просто if (stateFlow == error) ...?
Делаете collectAsState, и работаете дальше как с обычным MutableState. Посмотрите любой пример композ приложения из доков, да и в целом доку по работе с Flow, там всё отлично описано)
А когда Вам нужно проверить значение?
проверку не там важно, главное - при старте экрана. аналогично тому, как мы в xml проверяем Lifecycle.State.ON_START и там уже что-то делаем после коллекта
Ну есть типа LifecycleObserver тоже для компоуза либо в LaunchedEffect это при начальной композиции
окей, спасибо. а если просто collectAsState и до начала инициализации карты, для которой мне и нужна проверка сервисов, проверять как обычную переменную и уже вызывать соовтетствующие ошибки?
Не уверен что так делать правильно
а можете какой-то сэмпл показать с реализацией в LaunchedEffect?
я правильно понимаю что LaunchedEffect - это корутин скоуп, который живет пока композабл находится в композиции?
var showDialog by remember { mutableStateOf(false) } LaunchedEffect(Unit) { showDialog = true } ... if (showDialog) { Dialog(...) }
у меня не совсем так) в моём случае это flow из VM. Т.е. val showDialog by viewModel.showDialogFlow.collectAsFlow(null)
В таком случае не проще будет сделать showDialog.value?.let { if (it) Dialog() }?
я в итоге так и сделал)
Обсуждают сегодня