【发布时间】:2019-03-20 18:13:13
【问题描述】:
我有这个功能:
Future<String> load(SharedPreferences prefs, String fileName) async {
prefs = await SharedPreferences.getInstance();
String jsonString = prefs.getString(fileName) ?? "";
if (jsonString.isNotEmpty) {
return jsonString;
}else{
return ...
}
}
在 else 情况下我应该返回什么?我尝试使用“”,但它不起作用。
【问题讨论】:
-
“不起作用”到底是什么意思?
-
String jsonString = prefs.getString(fileName) ?? "";- 错了,你必须这样做String jsonString = (await prefs.getString(fileName)) ?? ""; -
因为,当我尝试加载时,它给了我“FormatException: Unexpected end of input (at character 1)
-
如果我把那个 await 放在那里,它会抱怨告诉我“await only futures”
-
你说得对
await我刚刚研究了首选项的不同实现。看起来完全没问题。问题完全出在else块中吗?
标签: dart flutter sharedpreferences future