热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在键/值(shared_preferences)上设置状态功能不适用于显示新值

我正在用Flutter构建一个小的pomodoro应用程序。我正在使用包shared_preferences存储一个String和

我正在用Flutter构建一个小的pomodoro应用程序。我正在使用包shared_preferences存储一个String和一个Int。

一切正常(加载和保存),但是我试图使用SetState自动更改Int值的显示,这是行不通的。仅当我重新加载应用程序时,显示值才会更改。

我的保存方法是:

_savePomo() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
prefs.setInt('pomodoro',pomodoro);
});
}

每次podomoro完成一个循环时都会调用该方法。在调用该方法之前,我先增加番茄变量= + 1。
我正在显示这样的值:

Text("It's your " + _pomodoro.toString() +"th pomodoro !");

所有事情都在有状态的小部件中发生。


执行此操作的地方:

_pomodoro += 1;

将其转换为此:

setState(() {
_pomodoro += 1;
});

您也不需要将prefs.setInt放在setState中。

,

您可以尝试以下代码:-

int pomodoro = 0;
_savePomo() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setInt('pomodoro',pomodoro);
pomodoro = await prefs.getInt('pomodoro');
}

您可以在Text小部件中使用pomodoro变量,如下所示:-

Text("It's your " + pomodoro.toString() +"th pomodoro !");

推荐阅读
author-avatar
wp_725133
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有