Ankit Kumar
01/16/2024, 4:05 PMarnaud.giuliani
01/16/2024, 4:24 PMAnkit Kumar
01/16/2024, 4:51 PMviewModel { LoginViewModel(savedStateHandle = get(), get()) }
Pedro Francisco de Sousa Neto
01/16/2024, 4:59 PMviewModel { LoginViewModel() }
Right @arnaud.giuliani?arnaud.giuliani
01/16/2024, 5:00 PMviewModel { LoginViewModel(savedStateHandle = get(), get()) }
arnaud.giuliani
01/16/2024, 5:01 PMAnkit Kumar
01/16/2024, 5:01 PMval viewModel: LoginViewModel = getViewModel()
Ankit Kumar
01/16/2024, 5:01 PMarnaud.giuliani
01/16/2024, 5:03 PMAnkit Kumar
01/16/2024, 5:03 PMarnaud.giuliani
01/16/2024, 5:04 PMkoinViewModel
instead of getViewModel
but should'n change mucharnaud.giuliani
01/16/2024, 5:04 PMAnkit Kumar
01/16/2024, 5:05 PMAnkit Kumar
01/16/2024, 5:06 PMorg.koin.core.error.NoBeanDefFoundException: |- No definition found for class:'androidx.lifecycle.SavedStateHandle'. Check your definitions!
Ankit Kumar
01/16/2024, 5:07 PMkoinViewModel
,if I see correctly internally it is using getViewModel
onlyarnaud.giuliani
01/16/2024, 5:09 PMAnkit Kumar
01/16/2024, 8:21 PM@OptIn(KoinInternalApi::class)
@Composable
inline fun <reified T : ViewModel> NavController.getViewModel(
qualifier: Qualifier? = null,
owner: ViewModelStoreOwner = checkNotNull(LocalViewModelStoreOwner.current) {
"No ViewModelStoreOwner was provided via LocalViewModelStoreOwner"
},
scope: Scope = GlobalContext.get().scopeRegistry.rootScope,
noinline parameters: ParametersDefinition? = null
): T {
val params = remember(parameters) {
parameters?.invoke()?.values?.toTypedArray()
}
val savedStateHandle = currentBackStackEntry?.savedStateHandle
return org.koin.androidx.compose.getViewModel(
qualifier = qualifier,
owner = owner,
scope = scope,
parameters = {
if (params != null) {
parametersOf(
savedStateHandle,
*params
)
} else {
parametersOf(savedStateHandle)
}
}
)
}
arnaud.giuliani
01/17/2024, 1:29 PMkoinNavViewModel
is doing the same I believe 🤔Ankit Kumar
01/17/2024, 2:07 PMkoinNavViewModel
anywhere even in koin doc
or is there any another dependency I need?