我有以下情况:屏幕上有一个按钮,它将数据添加到db。还有未来的建设者,其中有未来的getDataFromDB
。当我通过按钮添加数据时,将来的构建器不会从数据库获取数据。当我在屏幕上进行几次滑动时,它可以正常工作。怎么了?这是代码:
FutureBuilder(
future: DatabaseManager().findAllCaloriesForSelectedDate(currentDate),
builder: (context, AsyncSnapshot<int> snapshot) {
if (snapshot.hasData) {
_caloriesCurrent = snapshot.data;
return AnimatedCircularChart(
size: Size(constraints.maxWidth * 0.8, constraints.maxWidth * 0.8),
initialChartData: <CircularStackEntry>[
CircularStackEntry(
<CircularSegmentEntry>[
CircularSegmentEntry(
currentProgress,
Color(AppColors.brandViolet),
),
CircularSegmentEntry(
100 - currentProgress,
Color(AppColors.layoutBackgroundColor),
),
],
),
],
chartType: CircularChartType.Radial,
edgeStyle: SegmentEdgeStyle.round,
percentageValues: true,
);
} else {
return Container();
}
},
)
我将不胜感激。预先感谢!
答案 0 :(得分:0)
您的代码有两个问题:
将来一定要早一些,例如在State.initState,State.didUpdateConfig或State.didChangeDependencies中。构造FutureBuilder时,不得在State.build或StatelessWidget.build方法调用期间创建它。
如果没有,您应该阅读有关BloC体系结构的信息。