【发布时间】:2019-11-21 05:00:24
【问题描述】:
我正在尝试在使用 Provider 管理的 Flutter 应用中实现本地数据库支持,现在我想让数据的检索遵循状态管理模式,但我一直未能做到。
我试图制作一个传统的 Provider 来实现这一点,但应用程序陷入了对数据库的请求循环中,所以经过一番搜索后,我找到了 FutureProvider,但我找不到如何从正在加载的数据
class _ReceiptsRouteState extends State<ReceiptsRoute> {
List<Receipt> receipts = [];
@override
Widget build(BuildContext context) {
return FutureProvider(
initialData: List(),
builder: (_){
return DBProvider().receipts().then((result) {
receipts = result;
});
},
child: Scaffold(
appBar: AppBar(
title: Text(AppLocalizations.of(context).history),
),
body: Container(
child: ListView.builder(
itemBuilder: (context, position) {
final item = receipts[position];
return ListTile(
title: Text(item.date),
);
},
),
),
),
);
}
}
现在我的应用程序按照我的意愿运行,但不是按照它应该运行的方式运行,我使用 FutureBuilder 直接从数据库中获取数据,但我知道它应该来自提供程序,所以我想把它改正
【问题讨论】:
标签: flutter dart flutter-provider