簡體   English   中英

如何將 readAsLines() 的返回分配給 Flutter 中的本地 List?

[英]How to assign the return of the readAsLines() to a local List in Flutter?

我剛剛寫了這段代碼:

Future<List<String>> readMedsNames() async{

   List<String> medsNames;
   final directory = await getApplicationDocumentsDirectory();
   File eventFilePointer = File('${directory.path}/events.txt');

   if(eventFilePointer.existsSync()){

      eventFilePointer.readAsLines().then((lines) =>
         print(lines) //Works
         //medsNames = lines
      ); //Doesn't work, when I print it in the flollowing line the value is null...
      //print(medsNames);
      return medsNames;
   }
   else
   {
      return null;
   }
}

我必須返回List<String>填充了我讀過的文件中寫入的所有行。 我能怎么做? 提前致謝!

原因是return語句命中之前, async回調完成。 嘗試如下:

if(eventFilePointer.existsSync()) {
   medsNames = await eventFilePointer.readAsLines();
   print(medsNames);
   return medsNames;
}
return null;

如何返回未來<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.

相關問題 如何分配列表<string> flutter?</string> 如何分配和訪問返回列表 Flutter Firestore 如何返回未來<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 和 Dart 對列表進行排序並返回 如何在 flutter 中返回 api 響應值列表 如何返回列表的元素 - Flutter 如何返回flutter中model的帖子列表 如何將經緯度列表分配給Flutter中類型為Marker的列表 Flutter如何將數據列表保存到本地存儲
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM