Неожиданное нулевое значение в типобезопасной навигации Jetpack ComposeAndroid

Форум для тех, кто программирует под Android
Anonymous
Неожиданное нулевое значение в типобезопасной навигации Jetpack Compose

Сообщение Anonymous »

Это фрагмент моего навигационного графика:
MyApp.kt
navigation(startDestination = Home) {
composable {
atHomeScreen = true
HomeScreen(
onClick = { categoryId ->
navController.navigate(Items(categoryId = categoryId))
}
)
}

composable(
) { backStackEntry ->
val categoryId: String = backStackEntry.toRoute()
atHomeScreen = false
ItemsScreen(categoryId)
}
//...
}


Как видите, я передаю CategoryId, который представляет собой ненулевую строку, из Home в Items. Но тем не менее, CategoryId каким-то образом получает нулевое значение. Пожалуйста, помогите мне отладить это.
Примечание:
HomeScreen.kt
@Composable
fun HomeScreen(
onClick: (String) -> Unit,
modifier: Modifier = Modifier
) {
val viewModel: HomeViewModel = hiltViewModel()
val categories by viewModel.itemCategories.collectAsStateWithLifecycle()

Column(
modifier = modifier
.fillMaxSize()
.verticalScroll(rememberScrollState()),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.spacedBy(12.dp)
) {
categories.forEach { category ->
DataCard(
title = category.title,
imageUrl = category.imageUrl,
onCardClick = {
onClick(category._id.toHexString())
}
)
}
}
}

Routes.kt
@Serializable
data class Items(val categoryId: String) //definition of Items route


Подробнее здесь: https://stackoverflow.com/questions/789 ... ck-compose

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