If statement 如何基于if-else语句构建小部件?
我需要根据如下所示的数据构建一个小部件。 我需要先运行CircularProgressIndicator。我的问题是我需要从服务器1获取数据。如果服务器1没有数据,停止CircularProgressIndicator并显示“未找到注册”小部件。如果服务器1有数据,则从服务器2获取详细信息数据。如果服务器2没有数据,则显示“暂时数据不可用”小部件。如果服务器2有数据,则显示“服务器2数据小部件” 我尝试创建一个布尔变量,并在主构建小部件中尝试显示页面。但我一直在出错,keep显示“未找到注册”窗口小部件,几秒钟后,当我使用setState获取服务器2数据时,它显示“服务器2数据窗口小部件”。但它从不显示循环压缩机指示器。如前所述,您知道如何基于if-else语句构建小部件吗If statement 如何基于if-else语句构建小部件?,if-statement,widget,flutter,If Statement,Widget,Flutter,我需要根据如下所示的数据构建一个小部件。 我需要先运行CircularProgressIndicator。我的问题是我需要从服务器1获取数据。如果服务器1没有数据,停止CircularProgressIndicator并显示“未找到注册”小部件。如果服务器1有数据,则从服务器2获取详细信息数据。如果服务器2没有数据,则显示“暂时数据不可用”小部件。如果服务器2有数据,则显示“服务器2数据小部件” 我尝试创建一个布尔变量,并在主构建小部件中尝试显示页面。但我一直在出错,keep显示“未找到注册”窗
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,我实现了你的代码,它现在正在工作。