【发布时间】:2021-09-01 01:54:26
【问题描述】:
我的代码在这里:
//get data
Future<Object> sharedGetData(String key) async{
SharedPreferences prefs=await SharedPreferences.getInstance();
return prefs.get(key);
}
设置数据部分:
sharedAddData(String key,Object dataType,Object data) async{
SharedPreferences prefs=await SharedPreferences.getInstance();
switch(dataType){
case bool:
prefs.setBool(key, data as bool);break;
case double:
prefs.setDouble(key, data as double);break;
case int:
prefs.setInt(key, data as int);break;
case String:
prefs.setString(key, data as String);break;
case List:
prefs.setStringList(key, data as List<String>);break;
default:
prefs.setString(key, data as String);break;
}
}
然后我添加了一个并想获取一个值:
//add
sharedAddData(Application.USER_LOGIN, bool, true);
//How to fetch this?
sharedGetData(Application.USER_LOGIN) 返回一个未来类型,但我想检查它的值。
我试过这种方式:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context){
sharedGetData(Application.USER_LOGIN).then((v){
if(v==true){
return MaterialApp(
home: DashboardScreen(),
);
}
else {
return MaterialApp(
home: LoginScreen(),
);
}});
}
}
但它报告说它缺少一些返回方式。 谁能帮助我?谢谢
【问题讨论】:
-
版本:shared_preferences:^0.5.4+8
标签: flutter async-await sharedpreferences future