gpt4 book ai didi

android - 在导航图 NavGraph 中找不到与请求 NavDeepLinkRequest 匹配的导航目的地

转载 作者:行者123 更新时间:2023-12-04 23:50:22 27 4
gpt4 key购买 nike

我有一个看起来像这样的 NavGraph:

@Composable
fun NavGraph (
navController: NavHostController
) {
NavHost(
navController = navController,
startDestination = "Products"
) {
composable(
route = "Products"
) {
ProductsScreen(
navController = navController
)
}
composable(
route = "Product Details",
arguments = listOf(
navArgument("product") {
type = NavType.SerializableType(Product::class.java)
}
)
) {
val product = navController.previousBackStackEntry?.arguments?.getSerializable("product") as Product
ProductDetailsScreen(
navController = navController,
product = product
)
}
}
}
在 ProductDetailsS​​creen 中,我希望单击产品以进一步导航到传递产品对象的详细信息屏幕:
LazyColumn {
items(
items = products
) { product ->
ProductCard(
product = product,
onProductClick = {
navController.currentBackStackEntry?.arguments?.putSerializable("product", product)
navController.navigate("Product Details")
}
)
}
}
产品完美显示,但当我单击产品时,应用程序因以下错误而崩溃:

java.lang.IllegalArgumentException: Navigation destination that matches request NavDeepLinkRequest{ uri=android-app://androidx.navigation/Product Details } cannot be found in the navigation graph NavGraph(0x0) startDestination={Destination(0xb543811) route=Products}


任何人都可以帮忙吗?
附言我也关注了这个 answer但没有运气:(

最佳答案

确保您正确设置了所有参数名称和路由名称并避免使用空格,当您想分词时使用下划线
我的错
路由定义中的参数名称,同时在 navArgument 中提供 block 应该相同

composable(
"pokemon_detail_screen/{dominantColor}/{pokemonName}", //Notice over here
arguments = listOf(
navArgument("dominantColor") {
type = NavType.IntType
},
navArgument("pokemon_name") { // Notice over here
type = NavType.StringType
}
)
)

我花了很长时间才弄清楚所以要非常小心

关于android - 在导航图 NavGraph 中找不到与请求 NavDeepLinkRequest 匹配的导航目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70668385/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com