#android #dependency-injection #dagger-hilt
Вопрос:
У меня есть такой модуль:
@Module
@InstallIn(ViewModelComponent::class) // scope - ViewModel
object ViewModelsComponents {
@Provides
@ViewModelScoped
fun provideMyRepo() = MyRepo() /*<- database from another
module
needs to be
passed here*/
}
мой класс репо
class MyRepo @Injected constructor(private val db: RoomDbClass){
......
}
Я проследил за документацией и выполнил три шага
- Интерфейс точки входа
@Точка входа @Установка(синглетный компонент::класс) интерфейс DbDependency {
fun provideDatabase () = RoomDbClass().instance }
2.Компонент Кинжала
@Component(dependencies = [DbDependency ::class])
interface DBComponent {
@Component.Builder
interface Builder {
fun context(@BindsInstance context: Context): Builder
fun appDependencies(dbDependencies: DbDependency): Builder
fun build(): DBComponent
}
}
в документе показано, как ввести компонент в действие, которое
не является тем, что я ищу.
Как мне передать компонент dagger в мой модуль репо ??
Комментарии:
1. Вы пытаетесь ввести его в класс, который не относится к @HiltEntryPoint — отсюда и @EntryPoint?
2. Я новичок в hilt, поэтому я не уверен, о чем вы спрашиваете, я просто пытаюсь использовать зависимость в модуле, отличном от hilt, как сказано в документации, но в объекте, где модули определены, а не в действии, как сказано в документе