我尝试从一个类的getter方法中获取保存在SharedPreferences
中的一些值,但是SharedPreferences.getInstance()
返回一个Future
,有没有办法在非async
的getter方法中获取SharedPreferences
对象,例如:
import 'package:shared_preferences/shared_preferences.dart';
class MyClass {
get someValue {
return _sharedPreferencesObject.getString("someKey");
}
}
Dart中是否有类似于C#中.Result
属性的东西,例如getSomethingAsync().Result
(https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1.result?view=netframework-4.7.2)?
6条答案
按热度按时间wooyq4lh1#
您可以使用
FutureBuilder()
qv7cva1a2#
你可以在
initState()
中完成,然后调用setState()
来更新你的build()
方法。eit6fx6z3#
我建议您使用GetStorage
您将能够获取值而无需等待它们
rta7y2nd4#
你可以做这样的事
SharedPreferences
值示例
bbmckpt75#
SharedPreferences中唯一的异步调用是获取初始示例,这可以在整个应用中重用。
main
可以是async
。因此,您可以在main
中只使用await
SharedPreferences
示例:现在,您可以在任何地方使用
prefs
,而无需求助于async
代码。SharedPreferences
将用作非阻塞直写缓存,写操作在后台异步运行。wf82jlnq6#
你可以在
initState()
上调用一个函数,并将SharedPreferences保存在一个变量中,这样你就可以在一个非异步方法中使用,如下所示: