我一直在尝试在Widget中添加Future的return语句。
这是我的 future 代码:
Future<Widget> readName() async {
try {
final file = await _localNames;
// Read the file
String contents = await file.readAsString();
return Text('Assignment' + contents);
} catch (e) {
// If encountering an error, return 0
return Text('Error');
}
}
这是我的小部件:
Widget build(BuildContext ctxt) {
return MaterialApp(
home: Scaffold(
appBar: new AppBar(
title: new Text("My assignments"),
),
body: Container(
margin: const EdgeInsets.only(top: 10.0),
child: Align(
alignment: Alignment(0, -0.9),
child: Column(
children: <Widget>[
// Need Text Here
],
),
),
),
),
);
}
您如何解决呢?我一直在努力寻找解决方案的一天。谢谢你的时间!
最佳答案
您可以使用FutureBuilder从Future获取数据,并根据需要使用它;
根据文档的FutureBuilder
是:
下面的代码可与FutureBuilder配合使用:
Widget build(BuildContext ctxt) {
return MaterialApp(
home: Scaffold(
appBar: new AppBar(
title: new Text("My assignments"),
),
body: Container(
margin: const EdgeInsets.only(top: 10.0),
child: Align(
alignment: Alignment(0, -0.9),
child: Column(
children: <Widget>[
// Need Text Here
FutureBuilder<Widget>(
future: readName(),
builder: (context, snapshot) {
if (snapshot.hasData)
return snapshot.data;
return Center(child: CircularProgressIndicator());
}
),
],
),
),
),
),
);
}
阅读更多关于FutureBuilder的信息。检查以下链接:
FutureBuilder
关于android - 我该如何将Future的return语句放入小部件中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61668052/