json - Flutter - 延迟 json 请求每次执行一次

标签 json dart flutter delay

我正在尝试使用多个 jsons 请求做一个仪表板,但我希望该请求一个一个地工作,比如当完成第一个请求时开始第二个,当完成第二个时开始第三个当完成第三个时开始 N。

我的列表代码:

new CustomScrollView(
          cacheExtent: height * 6,
            slivers: [
              new SliverList(
                  delegate: new SliverChildListDelegate(
                    [
                      new RelatorioVendPeriodoAPeriodo(),
                      new RelatorioMensals(),
                      new RelatorioDiasDaSemanas(),
                      new RelatorioVendasTotalidasPorPeriodo(),
                      new RelatorioDasVendasTotsProdutos(),
                    ]
                  )
              )
            ]
        ),

这个新类调用,为我请求返回。任何人都知道如何延迟它?

最佳答案

首先,当必要的数据不可用时,父控件应该返回一个进度条。

服务将被称为 initState 以从后端获取数据。当数据准备就绪时,将调用 setState() 来重绘小部件。

看这个例子:

class _TestWidgetState extends State<TestWidget> {
  var data;

  @override
  void initState() {
   data = NetworkService.getData().then((data) {
     setState(() {
       this.data = data;
     });
   });
  }

  @override
  Widget build(BuildContext context) {
    if (data == null) {
      return CircularProgressIndicator();
    } else {
      return
        new CustomScrollView(
            cacheExtent: height * 6,
            slivers: [
              new SliverList(
                  delegate: new SliverChildListDelegate(
                      [
                        new RelatorioVendPeriodoAPeriodo(data: data),
                        new RelatorioMensals(data: data),
                        new RelatorioDiasDaSemanas(data: data),
                        new RelatorioVendasTotalidasPorPeriodo(data: data),
                        new RelatorioDasVendasTotsProdutos(data: data),
                      ]
                  )
              )
            ]
        );
  }
  }
}

class NetworkService {
  final JsonDecoder _decoder = new JsonDecoder();

  static String data1;
  static String data2;

  static getData() async {
    if (data1 == null || data2 == null) {
      await fetchFromServer();
    }
    return {'data1': data1, 'data2': data2};
  }

  static fetchFromServer() async {
    data1 = (await http.get('url')).body;
    data2 = (await http.get('url')).body;
  }
}

关于json - Flutter - 延迟 json 请求每次执行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51631999/

相关文章:

javascript - 如何使用 JavaScript 解析从 Ruby on Rails Controller 返回的多个 JSON 对象

javascript - 如何将数据转换为 JSON

flutter - 我可以仅对一个小部件而不是整个页面使用 setState 吗?

android - E/FirebaseInstanceId : binding to the service failed. Flutter Android

java - 我如何为 json 解析集成 loopj

jquery - 获取 Json 期间禁用控件

dart - Flutter 将 User 实例传递给另一个状态并保持更新

flutter - Provider 中是否有任何属性明智的 notifyListerners 选项?

flutter - 启动到物理设备时出现空白屏幕

flutter - Firestore 复合查询不适用于 Flutter Web