我正在尝试使用共享首选项,但是我有这种奇怪的行为。
我正在使用:
shared_preferences: ^0.5.6+2
在 initState 上的 StateFull Widget 上,我有这个:
@override
void initState() {
super.initState();
_testing()
}
Future<void> _testing() async{
print("starting")
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setInt('value', 1);
print("saved?")
}
当我用flutter run运行代码时,我只会得到“开始”的打印,而不是“保存?”的打印。
我用于构建Android应用程序的该项目所使用的完全相同的代码完全相同。但是对于iOS无法正常工作。
我缺少什么?
答案 0 :(得分:0)
它有效,没有错误。复制并粘贴,然后重试:
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return MyAppState();
}
}
class MyAppState extends State<MyApp> {
saveValue() async{
print("Starting...");
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setInt('value', 1);
print("Saved?");
}
@override
void initState() {
super.initState();
saveValue();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text("Shared Preferences")),
),
);
}
}
答案 1 :(得分:0)
它不会打印,因为您在设置int值之前正在使用await。
await prefs.setInt('value', 1);
如果删除了await,请尝试检查打印值,它将正常工作。
让我知道它是否有效。