我一直在尝试在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/

10-12 00:27