【问题标题】:When I use ViewModel.Factory, appear `Kodein No binding found for bind<Kodein>()` error当我使用 ViewModel.Factory 时,出现`Kodein No binding found for bind<Kodein>()` 错误
【发布时间】:2019-08-16 08:23:59
【问题描述】:

我参考http://kodein.org/Kodein-DI/?6.1/android#view-model-factory使用kodein viewmodel,出现错误。

零件代号

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))
}

【问题讨论】:

    标签: android kodein


    【解决方案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) }
        }
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-26
      • 2016-11-29
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多