private val bookViewModel: BookViewModel by activityViewModels {
BookViewModelFactory(
(activity?.application as BookApplication).repository
)
}
#BookApplication
val repository by lazy { BookRepository(database.getDao()) }
У меня есть 2 фрагмента, получается ли, что я создаю 2 объекта класса Repository. Нормально ли это?
мне кажется или ты передаешь репозиторий один
Этот код private val bookViewModel: BookViewModel by activityViewModels { BookViewModelFactory( (activity?.application as BookApplication).repository вызывается в двух разных фрагментах, не получается ли , что я создаю 2 объекта репозитория?
у тебя репозиторий лежит в апликейшн который 1 и сам репозиторий полем сделан и лейзи. значит тоже 1 инстанс будет
и да. если ты в фрагменте создаешь вьюмодель, то почему ты написал activityViewModels ?
У меня 2 фрагмента "соединены" к 1 viewModel и 1 репозиторию. Как я понял, нужно писать именно так
activityviewmodels означает что вьюмоделька будет привязана к жц активити. а не к фрагменту где оно живет
Обсуждают сегодня