【问题标题】:Flutter GetX - binding within a bindingFlutter GetX - 绑定内的绑定
【发布时间】:2021-02-13 22:48:48
【问题描述】:

我对我的一个观点有这个绑定:

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;

【问题讨论】:

    标签: flutter dart flutter-get


    【解决方案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),
        );
      }
    }
    

    【讨论】:

    • 我有一个问题。如果我每次想要LocalDataProvider() 实例时都使用Get.put(LocalDataProvider()),LocalDataProvider() 实例在整个应用程序中是否相同?
    猜你喜欢
    • 2022-01-08
    • 2022-12-09
    • 2022-12-04
    • 2022-08-06
    • 2021-12-20
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 2022-11-11
    相关资源
    最近更新 更多