Reputation: 17735
I have this compose code who works perfectly:
val pagerVM = hiltViewModel(
creationCallback = { factory: JourneySummaryPagerViewModel.Factory ->
factory.create(selectedIndex.value)
},
key = viewModel.journeys.toString()
)
JourneySummaryPager(
viewModel = pagerVM
)
For my project, I need to scope the generation of the VMs into a specific ViewModelStoreOwner.
So I have this code:
val storeOwner = object : ViewModelStoreOwner {
override val viewModelStore = ViewModelStore()
}
CompositionLocalProvider(value = LocalViewModelStoreOwner provides storeOwner) {
val pagerVM = hiltViewModel(
creationCallback = { factory: JourneySummaryPagerViewModel.Factory ->
factory.create(selectedIndex.value)
},
key = viewModel.journeys.toString()
)
JourneySummaryPager(
viewModel = pagerVM
)
}
But when I launch it, I have a crash:
java.lang.RuntimeException: Cannot create an instance of class fr.tisseo.android.screen.map.header.journey.journeySummaryPager.JourneySummaryPagerViewModel at androidx.lifecycle.viewmodel.internal.JvmViewModelProviders.createViewModel(JvmViewModelProviders.kt:40)
What can I do to make Hilt able to create my viewmodel with my custom StoreOwner ?
Upvotes: 0
Views: 42