我在flutter中对sharedPreferences做错了什么吗?
SharedPreferences prefs;
int score;
int storedScore;
final String uid;
StoredData(this.uid) {
_initialize();
_readValues();
}
_initialize() async {
prefs = await SharedPreferences.getInstance();}
_readValues() {
score = prefs.getInt("score") ?? 0;
storedScore = prefs.getInt("storedScore") ?? 0;}
错误: I / flutter(18698):方法'getInt'在null上调用。 I / flutter(18698):接收者:null I / flutter(18698):尝试调用:getInt(“ score”) 相关的引起错误的小部件是: I / flutter(18698):主屏幕文件:/// D:/flutter/trivia_iq/trivia_iq/lib/main.dart:24:33
这不在main.dart文件中,但是我正在获取。 任何帮助将不胜感激。
这给出了null,因为到目前为止尚未创建共享首选项对象对象,而您正在某处使用它。
您必须在等待一些后台工作的同时添加Future。
调用函数如下:
在“ StoredData()”构造函数中,调用“ _initialize()”方法时也应使用await:
如果不是,则在尚未初始化sharedPreferences时将调用“ _readValues()”。
但是由于不允许在构造函数上使用async,因此您应该像这样更改initialize():