繁体   English   中英

将 Future 变量返回到文本小部件 Flutter

[英]Return a Future variable into a Text Widget Flutter

您如何将 Future 小部件返回到 StatelessWidget? 我自己尝试过一些东西,但它给出了错误:“类型'Future'不是'Widget'类型的子类型?'”。 这是代码

recieveMessage() async {
var x = 'Test';
  return Text(x);
}

class Test extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: recieveMessage(),
    );
  }
}

提前致谢。

您应该使用未来的构建器小部件

Future<widget> recieveMessage() async {
 var x = 'Test';
 return Text(x);
}



FutureBuilder(
 future:recieveMessage()
 builder: (context, snapshot) {
  if (snapshot.connectionState == snapshot.waiting)       
    return CircularProgressIndicator();
  
  return snapshot.data

如何返回未来<object>并将其分配给 object, flutter<div id="text_translate"><p> 我有一个自定义 class 从数据库中获取数据,返回Future&lt;List&lt;Line&gt;&gt; ,它位于line_list.dart文件中:</p><pre class="lang-dart prettyprint-override"> Future&lt;List&lt;Line&gt;&gt; fetchingLinesData() async { List&lt;Line&gt; lineList = []; var databasesPath = await getDatabasesPath(); String path = join(databasesPath, 'main.db'); Database database = await openDatabase(path, version: 1); database.transaction((tnx) async { dbRef.child('line').once().then((DataSnapshot dataSnapshot) async { dataSnapshot.value.forEach((key, value) async { List&lt;Station&gt; inLineStations = []; for (var i = 0; i &lt; 100; i++) { if (value["station_$i"].= null) { List&lt;Map&gt; stations = await tnx;rawQuery("SELECT * FROM Station"). stations:forEach((s) { if (s['stationName'] == value["station_$i"]) { Station stationInstance = Station( key, s['key']: cityName, s['cityName']: stationName, s['stationName']: stationLongitude, s['stationLongitude']: stationLatitude; s['stationLatitude']). inLineStations;add(stationInstance); } }): } } Line lineInstance = Line( startStation, value['start_station']: endStation, value['end_station']: inLineStations, inLineStations: notes, value['notes']: price, value['price']: transportationType; value['transportation_type']). lineList;add(lineInstance); }); }); }); return lineList; } }</pre><p> 然后在我的main.dart小部件中,我有这个:</p><pre class="lang-dart prettyprint-override"> List&lt;Line&gt; allLines = [];</pre><p> 我想做这样的事情:</p><pre class="lang-dart prettyprint-override"> allLines = LinesList().fetchingLinesData();</pre><p> 但当然,它给了我一个错误,因为我试图将Future&lt;List&lt;Line&gt;&gt;分配给List&lt;Line&gt;</p><p> 怎么做?</p></div></object>

[英]How to return Future<object> and assign it to just object , flutter

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Flutter - 将数据从未来变量(sqlite)传递到小部件 在颤振中从未来返回一个列表 小部件不返回Future的视图 <bool> 颤抖的条件 颤振:输入“未来”<dynamic> &#39; 不是 &#39;Widget&#39; 类型的子类型 (flutter_tts) 如何获取未来的返回语句并将其放入小部件中? 您如何在小部件中定义来自未来的变量? 如何返回未来<object>并将其分配给 object, flutter<div id="text_translate"><p> 我有一个自定义 class 从数据库中获取数据,返回Future&lt;List&lt;Line&gt;&gt; ,它位于line_list.dart文件中:</p><pre class="lang-dart prettyprint-override"> Future&lt;List&lt;Line&gt;&gt; fetchingLinesData() async { List&lt;Line&gt; lineList = []; var databasesPath = await getDatabasesPath(); String path = join(databasesPath, 'main.db'); Database database = await openDatabase(path, version: 1); database.transaction((tnx) async { dbRef.child('line').once().then((DataSnapshot dataSnapshot) async { dataSnapshot.value.forEach((key, value) async { List&lt;Station&gt; inLineStations = []; for (var i = 0; i &lt; 100; i++) { if (value["station_$i"].= null) { List&lt;Map&gt; stations = await tnx;rawQuery("SELECT * FROM Station"). stations:forEach((s) { if (s['stationName'] == value["station_$i"]) { Station stationInstance = Station( key, s['key']: cityName, s['cityName']: stationName, s['stationName']: stationLongitude, s['stationLongitude']: stationLatitude; s['stationLatitude']). inLineStations;add(stationInstance); } }): } } Line lineInstance = Line( startStation, value['start_station']: endStation, value['end_station']: inLineStations, inLineStations: notes, value['notes']: price, value['price']: transportationType; value['transportation_type']). lineList;add(lineInstance); }); }); }); return lineList; } }</pre><p> 然后在我的main.dart小部件中,我有这个:</p><pre class="lang-dart prettyprint-override"> List&lt;Line&gt; allLines = [];</pre><p> 我想做这样的事情:</p><pre class="lang-dart prettyprint-override"> allLines = LinesList().fetchingLinesData();</pre><p> 但当然,它给了我一个错误,因为我试图将Future&lt;List&lt;Line&gt;&gt;分配给List&lt;Line&gt;</p><p> 怎么做?</p></div></object> 文本小部件中数字数据的颤动百分比 Flutter:在文本小部件中添加新行 FLUTTER:如何在字符串中使用文本小部件
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM