[英]Flutter : How to use Riverpod with SharedPreference and List<String> Variable in multipage?
[英]Flutter : How to use SharedPreference to get List<String>?
我在我的頁面中創建了一個 initState,並在每次打開此頁面時調用 callData 來獲取 favId(類型:列表)。 但是,當應用程序啟動時,我的編譯器會顯示以下錯誤消息:
_TypeError (type 'List<String>' is not a subtype of type 'String')
這是我的 getData 的 function:
getData(favId) async {
SharedPreferences pref = await SharedPreferences.getInstance();
return pref.getStringList(favId);
}
這也是我的 saveData 的 function:
void saveData() async {
SharedPreferences pref = await SharedPreferences.getInstance();
pref.setStringList("id", favId);
}
如何解決此問題,並且每次在應用程序中打開此頁面時都可以調用 getData? 謝謝:)
"id"
是一個字符串,您需要將一個List<String>
存儲到setStringList
如果要將項目添加到列表中,請執行以下步驟:
List<String> ids = await getData(favId);
ids.add("id");
saveData(ids, favId);
然后將saveData()
更改為
void saveData(ids, favId) async {
SharedPreferences pref = await SharedPreferences.getInstance();
pref.setStringList(ids, favId);
}
getData()
List<String> getData(favId) async {
SharedPreferences pref = await SharedPreferences.getInstance();
return pref.getStringList(favId);
}
如果要在 SharedPreferences 中保存和檢索 List,則使用相同的鍵來保存和檢索值。
這是一個簡單的例子,
const favKey = 'favoriteKey';
要保存數據,
void saveData(String favKey, List<String> favorites) async {
SharedPreferences pref = await SharedPreferences.getInstance();
pref.setStringList(favKey,favorites);
}
要檢索數據,
getData(String favKey) async {
SharedPreferences pref = await SharedPreferences.getInstance();
return pref.getStringList(favKey);
}
注意:您需要使用相同的密鑰來使用 SharedPreference 設置和獲取數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.