超过6个ProxyProvider的提供者,如何?

时间:2019-11-26 08:03:23

标签: flutter dart provider

直到现在,我都在代码中使用了Singleton模式,但现在我改用Remi Rousselet的Provider。到目前为止,我有一个业务逻辑类,该类还依赖于其他7个类。 ProxyProvider最多允许使用6个。在这种情况下,如何实现Provider模式?

class BlocAuth {
  BlocAuth(this.serviceChatFirestore);
  ServiceChatFirestore serviceChatFirestore;
  var _state = AuthState();
  var blocUser = BlocUser();
  var user = UserModel();
  var blocRouting = BlocRouting();
  var blocBrands = BlocBrands();
  var blocNotifications = BlocNotifications();
}

1 个答案:

答案 0 :(得分:2)

ProxyProvider实际上没有固定为任何数量的依赖项。

ProxyProvider vs ProxyProvider6只是一些语法糖。实际上并不需要后者

例如:

ProxyProvider3<A, B, C, Result>(
  builder: (_, a, b, c, previous) {
    ...
  }
)

严格等同于:

ProxyProvider<A, Result>(
  builder: (context, a, previous) {
    final b = Provider.of<B>(context);
    final c = Provider.of<C>(context);
    ...

  },
)

所以您可以这样做:

ProxyProvider6<A, B, C, D, E, F, Result>(
  builder: (context, a, b, c, d, e, f previous) {
    final g = Provider.of<G>(context);
    ...
  }
)