Flutter GetX - привязка внутри привязки
У меня есть эта привязка к одному из моих представлений:
class LoggedOutNicknameBinding extends Bindings {
@override
void dependencies() {
Get.lazyPut<LoggedOutNicknameController>(
() => LoggedOutNicknameController(),
);
}
}
Но у вышеуказанного контроллера тоже есть зависимость:
class LoggedOutNicknameController extends GetxController {
LoggedOutNicknameController(this._repository);
final IUserRepository _repository;
_repository
это
GetxService
так должно быть легко вводить:
class UserRepository extends GetxService implements IUserRepository {
Могу я пройти
_repository
к
LoggedOutNicknameController
через привязку?
Если это невозможно сделать с привязкой, мое решение выглядит нормально? Я полностью удалил привязку, чтобы я мог добавить необходимые компоненты:
class LoggedOutNicknameView extends GetView<LoggedOutNicknameController> {
LoggedOutNicknameView() {
final ldp = Get.put(LocalDataProvider());
final lds = Get.put(LocalDataSource(dataProvider: ldp));
repository = Get.put(UserRepository(lds));
controller = Get.put(LoggedOutNicknameController(repository));
}
LoggedOutNicknameController controller;
IUserRepository repository;
1 ответ
Я понял это методом проб и ошибок, который работает:
class LoggedOutNicknameBinding extends Bindings {
LoggedOutNicknameBinding() {
final ldp = Get.put(LocalDataProvider());
lds = Get.put(LocalDataSource(dataProvider: ldp));
repository = Get.put(UserRepository(lds));
}
IUserRepository repository;
LocalDataSource lds;
@override
void dependencies() {
Get.lazyPut<LoggedOutNicknameController>(
() => LoggedOutNicknameController(repository),
);
Get.lazyPut<UserRepository>(
() => UserRepository(lds),
);
}
}