首页 > 解决方案 > Flutter Provider - 添加依赖 Stream Provider 的 Proxy Provider

问题描述

MultiProvider(
    providers: [
         // In this sample app, CatalogModel never changes, so a simple Provider
     // is sufficient.
      Provider(create: (context) => CatalogModel()),
      // CartModel is implemented as a ChangeNotifier, which calls for the use
         // of ChangeNotifierProvider. Moreover, CartModel depends
     // on CatalogModel, so a ProxyProvider is needed.
     ChangeNotifierProxyProvider<CatalogModel, CartModel>(
         create: (context) => CartModel(),
         update: (context, catalog, cart) {
          cart.catalog = catalog;
          return cart;
          },
     ),
   ],)

我想用 Stream Provider Widget 替换 Provider 小部件,因为我正在使用流。我怎样才能拥有依赖于 Stream Provider 而不是 Provider 的相同 changenotifierproxy(购物车模型)提供程序。

标签: flutterflutter-provider

解决方案


我认为您可以尝试使用 的builder属性MultiProvider来获取BuildContext可以访问先前提供程序构建器的新功能(Provider.of<CatalogModel>.yourStreamValue例如,您可以调用)。

MultiProvider(
  providers:[Provider(create:(context)=>CatalogModel()],
  builder: (context, child) => StreamProvider<CartModel>.value(
     initialData: null,
     value: Provider.of<CatalogModel>.yourStreamValue,
     child: child,
  )
  child: child,

)


推荐阅读