无法在撰写导航中传递可分割对象

时间:2021-07-18 15:03:16

标签: android kotlin android-jetpack-compose jetpack-compose-navigation

我正在使用 compose 开发副项目,我对 Compose 导航感兴趣。我想要的是将 Parcelable 对象从一个可组合屏幕传递到另一个。所以导航是这样的:

composable(
        route = Screen.DetailsScreen.route,
        arguments = navArgument(PARAMETER_MOVIE_KEY) {
            NavType.ParcelableType(Movie::class.java)
        }
    ) {
        DetailsScreenGuide(navController, it)
    }

从主屏幕导航时,我将parcelable对象放到NavController.currentBackStackEntry

navController.currentBackStackEntry?.arguments?.putParcelable(
    "movieArgument",
    homeScreenNavGraphDataModel.movie
)
navController.navigate(route) // here, route = "movieDetails/movie"

然后,在调用 MovieDetails 可组合屏幕之前,我尝试从 navController.previousBackStanEntry 获取电影对象。

val movie = remember {
    navController.previousBackStackEntry?.arguments?.getParcelable<Movie>(
        "movieArgument"
    )
}

但在这里,movie 变量为空,我无法接收该对象。 (导航正在运行,它正在扩充 MovieDetails 可组合功能

你能帮我调试这些代码片段还是我在某处弄错了?

0 个答案:

没有答案