Jabez Magomere
07/02/2020, 1:18 PMviewModelFactory lateinit has not been initialized errpr
when injecting a dagger view model factory into a fragment and initialising the viewmodel using viewmodel lazy delegate property, here is a snippet of my code..
Error :
Fatal Exception: kotlin.UninitializedPropertyAccessException
lateinit property viewModelFactory has not been initialized
Code:
class DeliveriesFragment() : Fragment(){
@Inject
lateinit var daggerViewModelFactory: DaggerViewModelFactory
private val upcomingDeliveriesViewModel : UpcomingDeliveriesViewModel by viewModels { daggerViewModelFactory }
override fun onAttach(context: Context) {
SalesApplication.salesComponent().inject(this)
super.onAttach(context)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
observeDeliveries()
}
private fun observeDeliveries(){
upcomingDeliveriesViewModel.loadUpcomingUserDeliveries("").observe(viewLifecycleOwner, Observer {
//displayList()
})
}
}
stephanmg
07/02/2020, 2:54 PMkursivee
07/02/2020, 9:36 PMviewModelFactory
but that class has daggerViewModelFactory
is it somewhere else? the code looks correct though.Henry
07/03/2020, 4:23 AMDeliveriesFragment
in DI Module?Joost Klitsie
07/03/2020, 11:21 AMmarios proto
07/03/2020, 1:15 PMSalesApplication.salesComponent().inject(this)