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

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

9 ответов

12 просмотров

1 конечно

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

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

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

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

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

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

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

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

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

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

Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
Всем привет, есть небольшая проблема Есть такой скрипт document.addEventListener('DOMContentLoaded', function () { const sliderTabs = document.querySelectorAll('.s...
A da
8
@go1337 @dblackCat Привет. Все ещё дрочусь с fastpanel. Добавил второй домен который должен смотреть в рут того же сайта, но так как это просто домен, а не сайт, я не могу ему...
Ross 🦴
9
До речі, в ево нема можливості чи якого розширення щоб з адмінки з телефона зайти і терміново щось в верстці поправити?
Женя
7
Ну, так - шо, грамодяне-эрленгяне? Все - готовы подписаться под словами "гуру" на счёт трудности применения POSIX threads и про, конкретно, мьютексы, что "... недопоставишь м...
Wlad
21
кто-нибудь пользуется тайм-трекерами во время работы? так много разных нагуглил, может есть что-то популярное
Lencore
8
Пацаны. Я разрабатываю софт для инвайтинга на телетон, и столкнулся с такой проблемой, в один из чатов не могу приглашать никого, не дает добавлять, в то же время через официа...
Kernel Panic
11
Скажите, а кому нужен Currency как отдельный плагин вместо полноценного ecommerce в OctoberCMS? Кто-то использует его уже или планирует в будущем? Может я что-то не понимаю?
Igor
13
Розмовами про Рево мені нагадали часи, коли шаблони правилися прямо в адмінці. Хто в курсі, чому відійшли від цієї практики, так блейд не працює? Доволі зручно ж було (інколи)
Женя
3
привет, как сбилдить свифт прогу статически? делаю -Xswiftc -static-executable - получаю такую ошибку: /lib/aarch64-linux-gnu/libc.a(pthread_join_common.o)(.note.stapsdt+0x14...
🦊 Fox 🌸 🌸
6
Карта сайта