为什么我在 JetPack Compose 中使用 Navigating with arguments 时可以毫无问题地删除代码 navArgument?
Why can I remove the code navArgument without problem when I use Navigating with arguments in JetPack Compose?
我正在学习 Jetpack Compose Navigation。
代码 A 来自 article。效果不错。
我无法完全理解代码 navArgument
的含义。我发现删除了代码 navArgument
的代码 B 也可以正常工作。
代码 navArgument
是什么意思?
代码A
val accountsName = RallyScreen.Accounts.name
NavHost(...) {
...
composable(
"$accountsName/{name}",
arguments = listOf(
navArgument("name") {
// Make argument type safe
type = NavType.StringType
}
)
) { entry -> // Look up "name" in NavBackStackEntry's arguments
val accountName = entry.arguments?.getString("name")
..
}
}
代码B
val accountsName = RallyScreen.Accounts.name
NavHost(...) {
...
composable(
"$accountsName/{name}"
) { entry -> // Look up "name" in NavBackStackEntry's arguments
val accountName = entry.arguments?.getString("name")
...
}
}
By default, all arguments are parsed as strings. You can specify another type by using the arguments parameter to set a type
所以第二个选项有效,如果你的参数都是字符串类型就可以使用
navArgument
当默认的字符串类型不适合你的参数时应该使用
我正在学习 Jetpack Compose Navigation。
代码 A 来自 article。效果不错。
我无法完全理解代码 navArgument
的含义。我发现删除了代码 navArgument
的代码 B 也可以正常工作。
代码 navArgument
是什么意思?
代码A
val accountsName = RallyScreen.Accounts.name
NavHost(...) {
...
composable(
"$accountsName/{name}",
arguments = listOf(
navArgument("name") {
// Make argument type safe
type = NavType.StringType
}
)
) { entry -> // Look up "name" in NavBackStackEntry's arguments
val accountName = entry.arguments?.getString("name")
..
}
}
代码B
val accountsName = RallyScreen.Accounts.name
NavHost(...) {
...
composable(
"$accountsName/{name}"
) { entry -> // Look up "name" in NavBackStackEntry's arguments
val accountName = entry.arguments?.getString("name")
...
}
}
By default, all arguments are parsed as strings. You can specify another type by using the arguments parameter to set a type
所以第二个选项有效,如果你的参数都是字符串类型就可以使用
navArgument
当默认的字符串类型不适合你的参数时应该使用