If statement 如何基于if-else语句构建小部件?

If statement 如何基于if-else语句构建小部件?,if-statement,widget,flutter,If Statement,Widget,Flutter,我需要根据如下所示的数据构建一个小部件。 我需要先运行CircularProgressIndicator。我的问题是我需要从服务器1获取数据。如果服务器1没有数据,停止CircularProgressIndicator并显示“未找到注册”小部件。如果服务器1有数据,则从服务器2获取详细信息数据。如果服务器2没有数据,则显示“暂时数据不可用”小部件。如果服务器2有数据,则显示“服务器2数据小部件” 我尝试创建一个布尔变量,并在主构建小部件中尝试显示页面。但我一直在出错,keep显示“未找到注册”窗

我需要根据如下所示的数据构建一个小部件。 我需要先运行CircularProgressIndicator。我的问题是我需要从服务器1获取数据。如果服务器1没有数据,停止CircularProgressIndicator并显示“未找到注册”小部件。如果服务器1有数据,则从服务器2获取详细信息数据。如果服务器2没有数据,则显示“暂时数据不可用”小部件。如果服务器2有数据,则显示“服务器2数据小部件”

我尝试创建一个布尔变量,并在主构建小部件中尝试显示页面。但我一直在出错,keep显示“未找到注册”窗口小部件,几秒钟后,当我使用setState获取服务器2数据时,它显示“服务器2数据窗口小部件”。但它从不显示循环压缩机指示器。如前所述,您知道如何基于if-else语句构建小部件吗

bool _runLoading = true;
bool _data1 = false;
bool _data2 = false;

    return _runLoading == true
        ? _buildLoadingAnimation
        : _data2 == true
          ? _buildServer2Data
          : _buildNoDataFound

我想可能是这样的:

Future makeRequest1() {
  // make first request
}

Future makeRequest2() {
  // make second request
}

@override
Widget build(BuildContext context) {
  return FutureBuilder(
    future: makeRequest1(),
      builder: (context, snapshot) {
    if (snapshot.hasData) {

      if ([Server 1 Data is okay]) {
        return FutureBuilder(
          future: makeRequest2(),
            builder: (context, snapshot) {
          if (snapshot.hasData) {

            if ([Server 2 Data is okay]) {
              return Server2DataWidget();
            } else {
              return TemporarilyDataIsNotAvailableWidget();
            }

          } else {
            return CircularProgressIndicator()
          }
        });
      } else {
        return NoRegistrationFoundWidget();
      }

    } else {
      return CircularProgressIndicator();
    }
  });
}

我想可能是这样的:

Future makeRequest1() {
  // make first request
}

Future makeRequest2() {
  // make second request
}

@override
Widget build(BuildContext context) {
  return FutureBuilder(
    future: makeRequest1(),
      builder: (context, snapshot) {
    if (snapshot.hasData) {

      if ([Server 1 Data is okay]) {
        return FutureBuilder(
          future: makeRequest2(),
            builder: (context, snapshot) {
          if (snapshot.hasData) {

            if ([Server 2 Data is okay]) {
              return Server2DataWidget();
            } else {
              return TemporarilyDataIsNotAvailableWidget();
            }

          } else {
            return CircularProgressIndicator()
          }
        });
      } else {
        return NoRegistrationFoundWidget();
      }

    } else {
      return CircularProgressIndicator();
    }
  });
}

?你能在决定构建什么的地方添加代码吗?你能在决定构建什么的地方添加代码吗?谢谢Andrey,我实现了你的代码,它现在正在工作。谢谢Andrey,我实现了你的代码,它现在正在工作。