I'm trying to inject SavedStateHandle
. I am using Koin, Jetpack Compose and Navigation.
I've managed to make it work, but I think it's not the right instance (I don't get my values).
This is what I do so far:
Setting the argument:
private fun NavGraphBuilder.addDetails(
navController: NavHostController,
root: Screen
) {
composable(route = LeafScreen.Details.createRoute(root),
arguments = listOf(
navArgument("showId") { type = NavType.LongType }
)) {
DetailsScreen(navigateUp = navController::navigateUp)
}
}
Defining my ViewModel:
internal class DetailsViewModel(
val handle: SavedStateHandle,
private val getMovieDetailsUseCase: GetMovieDetailsUseCase
) : ViewModel()
Defining my composable:
@Composable
fun DetailsScreen(
navigateUp: () -> Unit
) {
DetailsScreen(
viewModel = getStateViewModel(),
navigateUp = navigateUp,
)
}
And my modules:
val uiDetailsModules = module {
viewModelOf(::DetailsViewModel)
}
It runs but showId
from val showId = handle.get<Long>("showId")
is null.