【问题标题】:Flutter getx: separate each binding inside own binding when I don't use navigatorFlutter getx:当我不使用导航器时,将每个绑定分隔在自己的绑定中
【发布时间】:2021-12-20 13:57:04
【问题描述】:

我正在使用 getx。我的应用程序和 mainBinding 中有一个主页。在主页内我有一个标签栏。主页有许多页面,任何页面都以这种方式加载:

child: TabBarView(
  controller: controller.tabController,
  physics: const NeverScrollableScrollPhysics(),
  children: [
    ReportOverallPage(),
    Container(),
    Container(),
    Container(),
    Container(),
    Container(),....
  ],
),

如您所见,未使用 Navigator 的 ReportOverallPage() 页面意味着未推送到堆栈托架导航器中,因此我无法为每个页面创建绑定。

每个页面都有自己的存储库和控制器。现在我必须在 MainBinding 中添加所有控制器和存储库。

class MainViewBinding implements Bindings {
  @override
  void dependencies() {
    Get.lazyPut<MainViewController>(() => MainViewController());

    Get.lazyPut<ReportController>(
        () => ReportController(Get.find<ReportRepository>()));
    Get.lazyPut<ReportRepository>(
        () => ReportRepositoryImp(Get.find<RestClient>()));
    .........
    
  }
}

现在 MainBainding 有一个很长的 Putted 类列表。当我不使用导航器时,如何在自己的绑定类中分离每个绑定类?

【问题讨论】:

    标签: flutter flutter-getx


    【解决方案1】:

    恐怕没有直接的方法可以做到这一点。因为绑定是特定于页面的(或导航),所以您必须将依赖项与页面绑定。标签不是页面。因此,您不会直接将依赖项绑定到它们。您需要将它们与包含页面绑定。

    但一种解决方法是创建单独的绑定类,然后在 MainBinding 类的 dependencies() 方法中调用每个绑定类的 dependencies() 方法。

    【讨论】:

      猜你喜欢
      • 2021-02-13
      • 2022-01-08
      • 2022-12-04
      • 2022-12-09
      • 2014-07-20
      • 2012-05-31
      • 2022-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多