Как вызвать композиционную функцию с нескольких экранов в Android JetPack Compose?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как вызвать композиционную функцию с нескольких экранов в Android JetPack Compose?

Сообщение Anonymous »

У меня есть композитный для предварительного просмотра, который загружает данные поезда с помощью ViewModel. В настоящее время я перейду к этому экрану из одного места, но мне нужно вызвать этот же экран с нескольких разных экранов в моем приложении. Из-за переоборудования он вызывает API 2-3 раза.
** < /p>

Основная проблема заключается в том, что вызов API запускается несколько раз
(3 вызовы вместо 1) при навигации на этот экран, который является
, вызывающим проблемы производительности и непрерывные сетевые запросы. /> **
Текущая реализация < /p>
@Composable
fun PreviewScreen(
previewViewModel: TrainPreviewVM,
args: Screen.PreviewScreen
) {
LaunchedEffect(Unit) {
args.date?.let {
previewViewModel.loadTrain(args.trainNumber, args.date)
}
}

// Rest of the UI implementation
}
< /code>
В настоящее время навигация с одного экрана, как это: < /p>
navController.navigate(
Screen.PreviewScreen(
trainNumber = it.number,
trainName = it.name,
date = it.date.toString()
)
)
< /code>
Вопросы < /strong> < /p>
Как я могу предотвратить несколько вызовов API при навигации до предварительного просмотра? /> Как мне гарантировать, что вызов API происходит только один раз на навигацию? < /li>
< /ul>

Подробнее здесь: https://stackoverflow.com/questions/796 ... pack-compo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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