dart - Flutter - 如何更改和保存从 SharedPreferences 检索到的整数?
问题描述
我从 SharedPreferences 中检索一个整数,我需要将此值与另一个整数相加,但是当我运行该方法时,我得到一个带有总和的无限循环。
我正在调用 updateScore 方法来获取之前保存在 SharedPreferences 中的值,然后使用 updateScore 方法更改该值,使用 saveScore 方法将值保存在 SharedPreferences 中,然后在 Text() 中显示该值。
int currentScore;
final int earnedScore;
@override
Widget build(BuildContext context) {
updateScore();
setScore();
return....
}
Future<int> getScore() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.getInt(widget.keyNameScore);
}
Future<void> saveScore(int score) async{
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setInt(widget.keyNameScore, score);
}
void updateScore() async{
getScore().then((value){
currentScore = value;
currentScore = currentScore + earnedScore;
saveScore(currentScore);
});
}
void setScore(){
getScore().then((value){
setState(() {
currentScore = value;
});
});
}
解决方案
我不得不将我的方法从构建移到 initState。
推荐阅读
- msbuild - 将多个 Web 项目合并到一个输出 zip 包中
- c# - 获取页面加载 asp 的价值?
- docx - python docx 已安装但无法导入
- c# - Quartz 电子邮件动态
- python - 这是我的代码。我正在尝试获取整数的用户输入,通过使用 map 的函数并返回立方结果列表
- python - 如何从 [PostgreSQL] 数据库中以 [HTML] 显示我的 [Django] 模型的结果?
- android - 应用已崩溃,正在执行 CustomActivityOnCrash 的 UncaughtExceptionHandler
- python-3.x - Python 设计模式:嵌套抽象类
- actionscript-3 - 是否可以将外部动作脚本注入到网络上已经存在的 .swf 文件中,然后将 flash vars 附加到原始 .swf 文件中?
- android - 自定义适配器(ListView)重力中的TextView不适用于一行文本