【发布时间】:2021-11-29 17:34:08
【问题描述】:
我这里有一个 FutureBuilder:
FutureBuilder<List<Task>>(
future:
getTasks(),
builder: (BuildContext context, AsyncSnapshot<List<Task>> snapshot){
if(snapshot.hasError){
return const Text('Erreur');
}
if(snapshot.hasData){
return ListView(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
children: taskList.map((e) => TaskContainer(
task: e
)).toList(),
);
}
return const Center(child: CircularProgressIndicator());
}
)
返回任务列表作为日历中的彩色块容器,如下所示:
问题是每当我导航到日历中的另一个月份时,FutureBuilder 都会再次从 web 服务获取数据,每次更改月份时都会重复任务:
这是我在月份之间导航的函数代码:
_toPreviousMonth(){
setState(() {
datess.clear();
dayss.clear();
startMonth = new DateTime(startMonth.year, startMonth.month - 1, 1);
});
}
_toNextMonth(){
setState(() {
datess.clear();
dayss.clear();
startMonth = new DateTime(startMonth.year, startMonth.month + 1, 1);
});
}
实际上我不介意 FutureBuilder 在我更改月份时获取数据,因为最终目标是显示所选日期的任务。
但我想要的是在我在几个月之间导航时,有一种方法可以抑制从前一次获取中构建的容器,
感谢您的帮助:)
【问题讨论】:
-
你能显示
getTasks()的代码吗?
标签: flutter dart asynchronous fetch flutter-futurebuilder