Jetpack Compose Navigation Pass Arguments/Data

Refer to Jetpack Compose Navigation.

NavHost(navController = navController, startDestination = Screen.Home.route) {    composable(        "selectPhoto/{albumId}",        arguments = listOf(navArgument("albumId") { type = NavType.StringType })    ) { backStackEntry ->        backStackEntry.arguments?.getString("albumId")?.let {            SelectPhotoScreen(                // viewModel = hiltViewModel(),                albumId = it)        }    }}
@Composablefun SelectPhotoScreen(viewModel: SelectPhotoViewModel = viewModel(), albumId: String) {    Text("Album Id = $albumId")}
val albumId = ...navController.navigate("selectPhoto/$albumId")

Alternatively, you can also read compose navigation arguments via ViewModel's SavedStateHandle.

class SelectPhotoViewModel(    savedStateHandle: SavedStateHandle): ViewModel() {    val albumId = savedStateHandle.get<String>("albumId")}


❤️ Is this article helpful?

Buy me a coffee ☕ or support my work via PayPal to keep this space 🖖 and ad-free.

Do send some 💖 to @d_luaz or share this article.

✨ By Desmond Lua

A dream boy who enjoys making apps, travelling and making youtube videos. Follow me on @d_luaz

👶 Apps I built

Travelopy - discover travel places in Malaysia, Singapore, Taiwan, Japan.