首先,抱歉我的英语不好。
使用此应用程序并且
阅读本章
class ItemDetailsViewModel
有以下声明。
private val itemId: Int = checkNotNull(savedStateHandle[ItemDetailsDestination.itemIdArg])
我知道savedStateHandle必须有一个设置部分,例如
operator fun set(key: String, value: Any?) { initialState[key] = value }
所以savedStateHandle使用键加载值。
此时,我在应用程序中找不到
savedStateHandle
使用ItemDetailsDestination.itemIdArg
键设置他的值。
问ChatGPT,
savedStateHandle
不能自动创建值,必须直接设置键值映射。但ChatGPT也找不到设置点。
我对“无用”感到好奇吗?在找到答案之前我无法入睡。 请有人让我入睡。
该参数是通过 Compose 设置的 带参数的导航。
正如您在
InventoryNavGraph.kt
中所看到的,ItemDetailsScreen
在其目标中有一个名为 ItemDetailsDestination.itemIdArg
的参数。
composable(
route = ItemDetailsDestination.routeWithArgs,
arguments = listOf(navArgument(ItemDetailsDestination.itemIdArg) {
type = NavType.IntType
})
) {
ItemDetailsScreen(
//...