在 flutter 中处理加载状态的正确方法是什么?

What is the correct way of dealing loading state in flutter?

例如我在一个屏幕上有 4 个未来的构建器。所有这些 returns CircularProgress 指示器仍在等待数据时。在这种情况下,我的屏幕充满了圆形进度指示器。而不是这个,我想显示加载屏幕,直到所有 FutureBuilders 都获得他们的数据。正确的处理方法是什么?

  1. 正确的做法是将这4个futures的任务打包成一个,等待它们依次使用await完成,最后一个await之后你可以简单地隐藏你的loader。

  2. 如果您的要求不同,您不能同时等待所有 4 个任务。你可以有一个 int 数组(数据类型无关紧要)。

并简单地用 4 个元素初始化它,从未来的构建器中删除完成任务的第一个元素。

List<int> _taskList = [0,1,2,3];

当其中一个未来完成时删除

_taskList.removeAt(0);

在有条件的父项中使用一个 Loader Widget

[if(_taskList.length >= 1) Loader(),]

对于异步交易,您必须管理某种分类帐。首选方法是使用 await