При использовании Koin для внедрения ViewModel с saveStateHandle, как показано ниже, все работает хорошо.
private val viewModel : MyViewModel by stateViewModel()
Однако, если я хочу передать значение intent.extra
, происходит сбой, сообщая, что intent
равно нулю.
private val viewModel : MyViewModel by stateViewModel(bundle = intent.extras)
Причина в том, что во время инициализации Действия, намерение еще не готово. Использование обычного фабричного способа создания ViewModel не было проблемой, так как это выполняется лениво.
private val viewModel: MyViewModel by viewModels{
MyViewModelFactory(this, Repository(), intent.extras)
}
Обходной путь, который я получаю,
private val viewModel by lazy {
getStateViewModel<MyViewModel> (bundle = intent.extras)
}
Есть ли способ сделать это более элегантно, используя by stateViewModel
?