Когда я использую ViewModel.На заводе появляется ошибка `Kodein не найдено привязки для bind()`

#android #kodein

#Android #kodein

Вопрос:

Я ссылаюсь на http://kodein.org/Kodein-DI/?6.1/android#view-model-factory использую viewmodel kodein, появилась ошибка.

часть кода

 bind<ViewModelProvider.Factory>() with singleton { KodeinViewModelFactory(instance()) }
  
 class KodeinViewModelFactory(private val kodein: Kodein) : ViewModelProvider.Factory {

  override fun <T : ViewModel> create(modelClass: Class<T>): T =
      kodein.direct.Instance(TT(modelClass))
}
  

Ответ №1:

Это довольно просто, вам просто нужно напрямую перенести Kodein на фабрику, без instance()

 class KodeinApp : Application(), KodeinAware {
    override val kodein by Kodein.lazy {
    import(androidXModule(this@KodeinApp))
    bind() from singleton { KodeinViewModelFactory(kodein) }
    bind() from singleton { MyViewModel(kodein) }
    }
}