我正在嘗試在共享首選項中設定字串串列,但由于未知原因,它拋出了以下錯誤
型別“bool”不是型別轉換中“List”型別的子型別
這是我的代碼
List selectedItems = [];
setList() async {
var prefs = await SharedPreferences.getInstance();
List<String> itemList = selectedItems.map((e) => e.toString()).toList(); // converted int list to string
List<String> selectedItemsList = await prefs.setStringList('selectedItems', itemList) as List<String>; // error
}
我沒有將 bool 型別值分配給任何變數,那么為什么會發生此錯誤?
uj5u.com熱心網友回復:
await prefs.setString 回傳一個布林值,這就是您面臨錯誤的原因。作為參考,請參閱https://pub.dev/documentation/shared_preferences/latest/shared_preferences/SharedPreferences/setString.html
您可能想要做的是這樣使用 getStringList :
List<String> selectedItemsList = await prefs.getStringList('selectedItems') as List<String>;
或者如果您真的想保存串列,則該行將是:
await prefs.setStringList('selectedItems', itemList) as List<String>;
uj5u.com熱心網友回復:
如果您查看檔案,您會看到setStringList回傳Future<bool>。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/474154.html
上一篇:方法可以自動訪問構建背景關系
