flutter - 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(购物车模型)提供程序。
解决方案
我认为您可以尝试使用 的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,
)
推荐阅读
- html - 按钮文本在 laravel 和 bootstrap 4 中未正确居中
- amazon-web-services - 使用 go get 安装 aws-sdk-go 软件包时出现“TLS 握手超时”
- python - 提取每个字符串值的元音并使用 Python 制作单独的 3x3 数组
- c# - C# UWP:使用 .NET Framework 目标引用
- python - 无法将 pyspark 3.0.0-preview2 与 kafka 集成
- ios - 我应该如何在 Core Data 中对这些数据进行建模
- c++ - 如何在服务器操作系统中获取句柄前景窗口?
- php - Laravel 中的所有插入请求在 Plesk 服务器上返回(500 服务器错误)
- monaco-editor - 如何在 monaco-editor 中自动将缩进转换为空格?
- python - Python datetime - 获取数据框中的日期间隔