Flutter-如何从另一个小部件重建将来的小部件

时间:2019-03-09 10:13:20

标签: flutter

我试图使下面的代码尽可能简单,我不知道我应该尝试采用哪种方法。

我有一个将来的构建器,可以返回天气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'),

),

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我建议用StreamBuilder替换FutureBuilder,并在每次有新的天气数据可用时更新流。因此,您可以使用BehaviorSubject并调用其add方法来更新流,而不是使用Future。