Alo*_*are 5 local-storage flutter
我是 Flutter 新手,开发的应用程序需要在 LocalStorage 中存储一定量的数据,我成功地在 LocalStorage 之间存储和检索数据,但是当我关闭应用程序并重新打开它时,它会刷新整个数据,当我们尝试时访问它给出 Null 的相同数据。我在这里附上我的示例代码,我是如何做到这一点的。它工作正常的唯一问题是它在重新启动应用程序后不会保留数据。
void saveData() async{
final LocalStorage storage = new LocalStorage('brick-game');
await storage.setItem('data', _data);
}
@override
Widget build(BuildContext context){
final LocalStorage storage = new LocalStorage('brick-game');
final data = storage.getItem('data');
};
Run Code Online (Sandbox Code Playgroud)
请让我知道我做错了什么或缺少什么。我们将不胜感激您的帮助。谢谢
由于某种原因,您必须等待本地存储ready(但这应该自动完成)。所以,在打电话之前getItem()你需要await storage.ready;,像这样:
Future<DataType> _getData() async {
final LocalStorage storage = new LocalStorage('brick-game');
await storage.ready;
return await storage.getItem('data');
}
Run Code Online (Sandbox Code Playgroud)
然后在您的build方法中您可以使用 aFutureBuilder<T>()来构建您的 UI。
@override
Widget build(BuildContext context) {
return FutureBuilder<DataType>(
future: _getData,
builder: (BuildContext context) {
if (snapshot.hasData) // we read data from storage
else if (snapshot.hasError) // an error occured
else // we are still loading
},
);
}
Run Code Online (Sandbox Code Playgroud)
本地存储有一个ready方法,这意味着需要一段时间才能访问存储
您的保存方法是async,您设置了带有关键字的项目await,但是当您再次启动应用程序时,您会得到没有await关键字的项目
尝试制定一种获取物品的方法
getItems() async {
final LocalStorage storage = new LocalStorage('brick-game');
final data = await storage.getItem('data');
print(data);
}
@override
Widget build(BuildContext context){
getItems().then((_){
print(data);
});
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4284 次 |
| 最近记录: |