flutter - Flutter 如何将 Provider 的价值取出来
问题描述
我的代码中有这个提供者。它假设返回列表
class ServingProvider extends ChangeNotifier {
List<Serving> servings = [];
getServings() {
Firestore.instance
.collection('servings')
.getDocuments()
.then((value) => value.documents)
.then((value) =>
value.map((serving) => Serving.fromJson(serving.data)).toList())
.then((value) => servings.addAll(value))
.then((value) => notifyListeners());
print(servings);
}
// List<Serving> get servings => servings;
}
我想在这里获得价值,但由于某种原因我得到了空值。
class KMultiScrollWheel extends StatelessWidget {
final String title;
final String value;
final BuildContext passedContext;
final String dialogTitle;
KMultiScrollWheel({
@required this.title,
this.value,
@required this.passedContext,
this.dialogTitle,
});
@override
Widget build(BuildContext context) {
final servings = Provider.of<ServingProvider>(context).servings;
print(servings)
这是我班级的包装。
ChangeNotifierProvider(
create: (_) => ServingProvider(),
child: KMultiScrollWheel(
title: 'Serving Size',
passedContext: context,
dialogTitle: 'Select Serving',
),
),
我来自反应,我完全迷失了应该相当简单的事情。提前致谢。
最后一个问题是,当我可以访问顶部已经声明的服务时,使用 get 方法有什么意义。
解决方案
当您使用实时数据库时,请使用StreamProvider
代替ChangeNotifierProvider
,这篇中篇文章可以帮助您
推荐阅读
- netlogo - Netlogo,将变量分配给邻居
- php - 外键记录多条时,如何显示一次用户信息?
- spring-boot - 如何使用 MockMVC 和 StandaloneSetup 而没有 WebApplicationContext 测试 Thymeleaf?
- html - 如何在滑块圆形复选框中集成链接
- javascript - 如何在基于 Firebase 查询的规则中按包含字符串的 orderByChild 进行过滤
- spi - stm32F1 dma关于spi循环模式传输数据量
- c# - 当类型派生自同一接口时合并可观察序列
- arduino - 模拟写入未设置 0V
- javascript - 向下滚动时粘滞文本
- java - 如何正确添加接口作为构造函数参数?