我试图使下面的代码尽可能简单,我不知道我应该尝试采用哪种方法。
我有一个将来的构建器,可以返回天气API数据。 我有一个计时器来停止向API发送垃圾邮件。 但是,如何才能重新加载天气小部件,以便再次调用FutureBuilder?
main.dart
CurrentWeatherWidget(),
current_weather_widget.dart
return Column(
children: <Widget>[
FutureBuilder<CurrentWeatherFactory>(
future: main,
builder: (context, snapshot) {
if (snapshot.hasData)
{
>> DISPLAY WIDGET
} else if (snapshot.hasError)
{
return Text(snapshot.error);
}
CircularProgressIndicator(),
some_other_widget.dart
RaisedButton(
onPressed: (){
if (timer() == 0){
timerReset();
>> RELOAD current_weather_.dart
} else {
print("no new data");
}
},
child: Text('RELOAD NEW DATA'),
),
感谢您的帮助。
答案 0 :(得分:0)
我建议用StreamBuilder
替换FutureBuilder,并在每次有新的天气数据可用时更新流。因此,您可以使用BehaviorSubject
并调用其add方法来更新流,而不是使用Future。