Я работаю над приложением Android Compose, которое отображает список поездов.
У меня есть экран A, на котором показан список поездов и экрана B, который отображает детали выбранного поезда.
Каждый экран имеет свой собственный ViewModel (используя HiltViewModel ()). и приносит список поездов через API. < /li>
Пользовательские нажатия на поезд. Принесите полные данные поезда? < /p>
На экране A перед навигацией и передайте данные B? ViewModel)? @Composable
fun TrainListScreen(navController: NavController, viewModel: TrainListViewModel = hiltViewModel()) {
val state by viewModel.trainList.collectAsState()
LazyColumn {
items(state.trains) { train ->
Text(
text = train.name,
modifier = Modifier.clickable {
navController.navigate("trainDetail/${train.number}")
}
)
}
}
}
< /code>
Навигационная настройка < /p>
NavHost(navController, startDestination = "trainList") {
composable("trainList") { TrainListScreen(navController) }
composable(
"trainDetail/{trainNumber}",
arguments = listOf(navArgument("trainNumber") { type = NavType.StringType })
) { backStackEntry ->
val trainNumber = backStackEntry.arguments?.getString("trainNumber") ?: ""
TrainDetailScreen(trainNumber)
}
}
< /code>
Экран B (подробная информация о поездке) < /p>
@Composable
fun TrainDetailScreen(
trainNumber: String,
viewModel: TrainDetailViewModel = hiltViewModel()
) {
val state by viewModel.trainDetail.collectAsState()
LaunchedEffect(trainNumber) {
viewModel.loadTrainDetail(trainNumber)
}
if (state.isLoading) {
CircularProgressIndicator()
} else {
Text("Train Name: ${state.train?.name}")
// show more details
}
}
< /code>
Какой экран должен нести ответственность за вызов API? Запущенным образом является ли правильный способ сделать API?
Подробнее здесь: https://stackoverflow.com/questions/796 ... ther-in-je
Когда я должен сделать вызов API во время навигации с одного экрана к другому в JetPack Compose (ViewModel на экран)? ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как правильно переходить из ViewModel в Jetpack Compose + Hilt + ViewModel?
Anonymous » » в форуме Android - 0 Ответы
- 36 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как передать дополнительные данные в ViewModel с экрана Jetpack Compose?
Anonymous » » в форуме Android - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-