Flutter 颤振GetX-绑定中的绑定
我对我的一个观点有约束力:Flutter 颤振GetX-绑定中的绑定,flutter,dart,flutter-get,Flutter,Dart,Flutter Get,我对我的一个观点有约束力: class LoggedOutNicknameBinding extends Bindings { @override void dependencies() { Get.lazyPut<LoggedOutNicknameController>( () => LoggedOutNicknameController(), ); } } \u repository是一个GetxService,因此应该很容易注入:
class LoggedOutNicknameBinding extends Bindings {
@override
void dependencies() {
Get.lazyPut<LoggedOutNicknameController>(
() => LoggedOutNicknameController(),
);
}
}
\u repository
是一个GetxService
,因此应该很容易注入:
class UserRepository extends GetxService implements IUserRepository {
我可以通过绑定将\u存储库
传递给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;
类LoggedOutNicknameView扩展了GetView{
LoggedOutNicknameView(){
final ldp=Get.put(LocalDataProvider());
final lds=Get.put(LocalDataSource(dataProvider:ldp));
repository=Get.put(UserRepository(lds));
controller=Get.put(LoggedOutNicknameController(存储库));
}
LoggedOutNicknameController控制器;
IUSER知识库;
我通过反复试验找到了这一方法,它是有效的:
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),
);
}
}
类LoggedOutNicknameBinding扩展绑定{
LoggedOutNicknameBinding(){
final ldp=Get.put(LocalDataProvider());
lds=Get.put(LocalDataSource(dataProvider:ldp));
repository=Get.put(UserRepository(lds));
}
IUSER知识库;
本地数据源;
@凌驾
void依赖项(){
懒鬼(
()=>LoggedOutNicknameController(存储库),
);
懒鬼(
()=>用户存储库(lds),
);
}
}
我有一个问题。如果我每次使用Get.put(LocalDataProvider()),LocalDataProvider()实例在整个应用程序中是否都是相同的?
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),
);
}
}