Я пытаюсь реализовать поддержку локальной базы данных в своем приложении, которое управляется с помощью 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 для непосредственного получения данных из базы данных, но я знаю, что они должны поступать через провайдера, поэтому я хочу сделать все правильно