i am developing side-project with compose and I am interested in Compose navigation. the thing that I want is to pass Parcelable object from one Composable screen to another. so the navigation is like this :
composable(
route = Screen.DetailsScreen.route,
arguments = navArgument(PARAMETER_MOVIE_KEY) {
NavType.ParcelableType(Movie::class.java)
}
) {
DetailsScreenGuide(navController, it)
}
when navigating from Home Screen, I put parcelable object to NavController.currentBackStackEntry
.
navController.currentBackStackEntry?.arguments?.putParcelable(
"movieArgument",
homeScreenNavGraphDataModel.movie
)
navController.navigate(route) // here, route = "movieDetails/movie"
and then, before calling the MovieDetails composable Screen, I try to get the movie object from navController.previousBackStanEntry
.
val movie = remember {
navController.previousBackStackEntry?.arguments?.getParcelable<Movie>(
"movieArgument"
)
}
but here, the movie
variable is null and I can not receive the object. (the navigation is working and it's inflating MovieDetails composable function
can you help me with debugging these code snippets or am I mistaken somewhere?