Flutter 在键/值(共享首选项)上设置状态函数不';t不用于显示新值
我正在用Flutter构建一个pomodoro小应用程序。我使用包shared_preferences来存储字符串和Int 一切都正常(加载和保存),但我试图用SetState自动更改Int值的显示,但这不起作用。仅当我重新加载应用程序时,显示值才会更改 我的保存方法是:Flutter 在键/值(共享首选项)上设置状态函数不';t不用于显示新值,flutter,dart,Flutter,Dart,我正在用Flutter构建一个pomodoro小应用程序。我使用包shared_preferences来存储字符串和Int 一切都正常(加载和保存),但我试图用SetState自动更改Int值的显示,但这不起作用。仅当我重新加载应用程序时,显示值才会更改 我的保存方法是: _savePomo() async { SharedPreferences prefs = await SharedPreferences.getInstance(); setState(() { prefs.setInt
_savePomo() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
prefs.setInt('pomodoro', pomodoro);
});
}
每次podomoro完成一个循环时,都会调用该方法。在调用该方法之前,我增加pomotoro变量=+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');
}
您可以在文本小部件中使用pomodoro变量,如下所示:-
Text("It's your " + pomodoro.toString() +"th pomodoro !");
抱歉,我应该更清楚:我在set state方法中有一个增量为+1的变量'laps',然后我将laps变量添加到pomodoro key_值中,方法如下:_sauverPomo()async{SharedPreferences prefs=wait SharedPreferences.getInstance();setState({int-pomodoro=(prefs.getInt('pomodoro')??0);pomodoro=pomodoro+laps;prefs.setInt('pomodoro',pomodoro);}