Внедрение stateViewModel в Koin cra sh при отправке параметра intent.extra - PullRequest
0 голосов
/ 15 апреля 2020

При использовании 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?

...