簡體   English   中英

如何在flutter中將Future List實例轉換為List String

[英]How to convert Future List instance to List String in flutter

我正在共享過程中保存字符串列表並獲取如下所示的內容

Future<List<String>> getList() async {
  final prefs = await SharedPreferences.getInstance();
  return prefs.getStringList("key");
}

問題是我需要將該列表發送到服務器但面臨問題,因為我需要將該未來列表轉換為簡單列表

我怎樣才能做到這一點? 或者有沒有其他方法,因為我需要將用戶保存的 id 列表發送到服務器。

當您將函數標記為async 時,它將返回一個 future

如果您不等待未來,您將獲得“未來實例”,這意味着您的未來(數據)尚不可用。

如果你想等待未來(數據)被解析,你需要使用await關鍵字。

因此,在您的情況下,您可以創建一個List<String> myList; 然后創建一個等待未來的函數,並將數據分配給之前的列表。

List<String> myList;
void getStringList() async {
var tempList = await getList();
// Or use setState to assign the tempList to myList
myList = tempList;
}

或者使用Then

getList().then(List<String> myList {
// TODO: Send myList to server.
});

希望這有幫助!!

當您使用異步數據時,您應該“等待”數據未完全加載。 您可以在這樣的異步方法中使用await word:

foo() async {
  final Future<List<dynamic>> futureList = fetchSomeFutureList();
  final list = await futureList;
}

或者使用 Future 的then()方法來委派一些工作。 您還可以使用FutureBuilder在小部件樹中等待期貨。 查看Dart 文檔頁面以了解詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM