gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 07:06:29 26 4
gpt4 key购买 nike

我正在尝试使用多个 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com