我正试图用SharedPreferences保存一个int:https://flutter.dev/docs/cookbook/persistence/key-value
然而,当我运行下面的代码时,它只打印";你好"而不是";在这里";。它似乎被卡在了";final prefs=等待SharedPreferences.getInstance(("发生了什么事?我是不是错过了什么?
...
class _InventoryItemState extends State<InventoryItem> {
Future <void> saveInt() async {
print("hello");
// obtain shared preferences
final prefs = await SharedPreferences.getInstance();
print("Here");
// set value
prefs.setInt('counter', 7);
// load value
final counter = prefs.getInt('counter') ?? 2;
print(counter);
}
@override
Widget build(BuildContext context) {
saveInt();
...
更新:
使用以下代码使其工作:
''
_saveInvNumber() async {
final prefs = await SharedPreferences.getInstance();
final key = 'invNumber';
final value = widget.invNumber;
prefs.setInt(key, value);
print('saved $value');
}
''
是否在pubspec.yaml中添加SharedPreferences依赖项。如果没有,请按以下方式操作:
dependencies:
flutter:
sdk: flutter
shared_preferences: ^0.5.8
你的代码的问题是你制作了SharedPreferences
final
,我相信你不能改变它的值。下面是如何保存字符串值的例子:
addStringToSF() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('stringValue', "abc");
}