【发布时间】:2020-12-10 18:34:16
【问题描述】:
在这里,我正在使用 api 来获取数据,但是我正在获取数据,因为我已经打印了数据。但是当我使用 FutureBuilder connection.state 时,它不返回任何内容并返回视图。我想知道 connection.state 的状态到 Done 以便我可以查看我的视图。
class DashboardScreen extends StatefulWidget {
@override
_DashboardScreen createState() => _DashboardScreen();
}
class _DashboardScreen extends State<DashboardScreen> {
Future<DashboardModel> futureDashboard;
// api hit
@override
void didChangeDependencies() {
super.didChangeDependencies();
Future.delayed(Duration.zero, () {
WidgetsBinding.instance.addPostFrameCallback((_) async {
futureDashboard = dashboardData();
}
);
});
}
// setting the data in the view created
@override
Widget build(BuildContext context) {
// scaffold view
return new Scaffold(
body: Container(
height: double.infinity,
width: double.infinity,
padding: EdgeInsets.symmetric(vertical: 10),
child: FutureBuilder<DashboardModel>(
future: futureDashboard,
builder: (context, AsyncSnapshot<DashboardModel> futureDashboard) {
switch (futureDashboard.connectionState) {
case ConnectionState.none:
return Container(
child: Center(
child: Text(
'No Connection Message')
)
);
case ConnectionState.active:
return Text('Active result...');
case ConnectionState.waiting:
return Text('Awaiting result...');
case ConnectionState.done:
print(futureDashboard);
if (futureDashboard.hasData) {
ListTile(
title: Text("data"),);
} else if (futureDashboard.hasError) {
return showSimpleFlushbar(
context, "${futureDashboard.error}");
}
return Container(
child: Text('error'),
);
}
return Container(
child: Text('errornot'),
);
}),
),
);
}
【问题讨论】:
-
欢迎来到堆栈溢出,请查看如何提出问题并编辑您的问题以提高有人回答的机会! stackoverflow.com/help/how-to-ask
标签: android ios flutter flutter-layout flutter-dependencies