Всем привет есть composable экран, который должен отображать данные, подгруженные из

сети. Нигде больше эти данные не нужны, только на этом экране. Загрузкой данных занимается ВМ, после загрузки данные кладутся в StateFlow переменную в ВМ, на которую сейчас подписываюсь в composable экране через collectAsState(). Как лучше организовать этот кейс?
Я два варианта тут увидел:
1) передавать ВМ в компоуз функцию, в начале функции проверять стейт, если не Initial, то запускать загрузку;
2) передавать в компоуз функцию уже готовые данные, но тогда разбухает активити и вообще активити к этому процессу относится опосредованно.
Экранов с такой логикой несколько, потому не хотелось бы, чтобы активити занималась началом загрузки, а первый вариант кажется не совсем каноничным, хотя пока его и использую

9 ответов

16 просмотров

1 конечно

Alexander- Автор вопроса
Алексей Ершов
1 конечно

может тут какой-то сайд эффект нужен? По доке подходит LaunchedEffect, но он запускает корутину, которая и так уже запускается в вм в общем, нормальный подход №1?

Alexander
может тут какой-то сайд эффект нужен? По доке подх...

Vm сама должна решать когда ей загрузить данные и как их обновлять. Композабл все просто спокойно слушает.

Не совсем понял 1 подход может быть имеется тоже самое, но почему не брать данные при ините ВМ, а дальше передавать стейт?

Alexander- Автор вопроса
Іван Каштелян
Не совсем понял 1 подход может быть имеется тоже с...

хм, тоже верно. Эта вм ведь только к этому экрану относится и на старте как раз должна загружать. Да, так лучше будет. В моем случае я из компоуз функции вызывал загрузку, проверяя при этом текущий стейт

в композ функции запускаать загрузку?

Похожие вопросы

Обсуждают сегодня

Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
12
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
9
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
🙋 Ребята, всем привет. Поправил задачу: Нужно каждому новому сообщению (1 раз по каждому юзеру) в чате прибавлять снизу кнопку с предложением подписаться на канал. Как добавит...
Alexander
1
Вот объясните, как это работает: Вот есть допустим unix-подобная система, и программа запускает допустим printf или fork, как это передается ядру, и как оно обрабатывать начин...
Егор
14
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Всем привет. Сейчас я изучаю erlang по книге Erlang and OTP in action. Дошел до главы где реализуется первый gen server на примере tcp rpc сервера. Меня очень сильно смутил ко...
Freezing Death
12
Карта сайта