想知道有人会怎么处理。
我有一个具有各自视图模型的片段。该视图模型在其构造函数中具有注入的回购。但是,当使用“ by viewModels()”在我的片段中创建视图模型实例时,出现错误。
示例:
@Singleton
class MyViewModel @Inject constructor(val someRepo: SomeRepo) : ViewModel() { ... }
class MyFragment : BaseFragment(), Injectable {
val myViewModel: MyViewModel by viewModels()
...
}
Error: java.lang.RuntimeException: Cannot create an instance of class com.example.MVVM.ViewModel.MyViewModel
有人在没有创建自己的viewModelFactory的情况下使它起作用吗?
答案 0 :(得分:0)
您需要做几件事才能将内容注入到viewmodel中:
by viewModels { theInjectedFactory}
中使用自定义工厂所有步骤1-3在许多articles或SO的答案中都有描述,例如:
PS:如EpicPandaForce所述,您不应将视图模型标记为@Singleton