У меня есть фрагмент, который в основном содержит только нижнюю навигацию и модель просмотра. Эта модель просмотра используется всеми дочерними фрагментами в этом фрагменте. Мой родительский фрагмент выглядит примерно так:
class UserDetailFragment : Fragment() {
private val args: UserDetailFragmentArgs by navArgs()
private val userDetailViewModel: UserDetailViewModel by viewModel { parametersOf(args.user) }
//standard code
//onCreateActivity where I do some basic stuff like switching the fragments
}
Viewmodel регистрируется в коине так:
val viewModelModule = module {
/* other viewmodels */
viewModel { (user: UserModel) -> UserDetailViewModel(get(), get(), user) }
}
Затем у нас есть дочерние фрагменты, которые я пытаюсь определить следующим образом:
class UserAlbumsFragment : Fragment() {
private val userDetailViewModel: UserDetailViewModel by sharedViewModel() //THIS LINE ISN'T WORKING
//standard code again
}
Как видите, одна строка не работает, я попытался написать ее так:
private val userDetailViewModel: UserDetailViewModel
by sharedViewModel(from = { parentFragment as ViewModelStoreOwner })
но я продолжаю получать эту ошибку:
Caused by: org.koin.core.error.NoParameterFoundException: Can't get parameter value #0 from org.koin.core.parameter.DefinitionParameters@426de94
at org.koin.core.parameter.DefinitionParameters.elementAt(DefinitionParameters.kt:31)
at org.koin.core.parameter.DefinitionParameters.component1(DefinitionParameters.kt:33)
at com.kvw.technicaltestmediamonks.di.KoinModules$viewModelModule$1$5.invoke(Unknown Source:11)
at com.kvw.technicaltestmediamonks.di.KoinModules$viewModelModule$1$5.invoke(KoinModules.kt:37)
at org.koin.core.instance.DefinitionInstance.create(DefinitionInstance.kt:54)
Как мне получить эту модель просмотра без повторного определения userModel?