Flutter Provider - 添加依赖 Stream Provider 的 Proxy Provider
Posted
技术标签:
【中文标题】Flutter Provider - 添加依赖 Stream Provider 的 Proxy Provider【英文标题】:Flutter Provider -Adding Proxy Provider that has dependency on Stream Provider 【发布时间】:2020-11-06 00:27:28 【问题描述】: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 小部件替换 Provider 小部件。我怎样才能拥有依赖于 Stream Provider 而不是 Provider 的相同 changenotifierproxy(购物车模型)提供者。
【问题讨论】:
【参考方案1】:我认为您可以尝试使用MultiProvider
的builder
属性来获得一个新的BuildContext
,该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,
)
【讨论】:
以上是关于Flutter Provider - 添加依赖 Stream Provider 的 Proxy Provider的主要内容,如果未能解决你的问题,请参考以下文章
Flutter Provider - 使用 ProxyProvider 的循环依赖
Flutter Provider:提供 2 个流,一个依赖另一个