我是Flutter的新手,正在开发需要在LocalStorage中存储一些数据的应用程序,我成功地将数据存储到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');
};
请让我知道我做错了什么或我错过了什么。你的帮助将不胜感激。谢谢
3条答案
按热度按时间odopli941#
由于某些原因,您必须等待本地存储为
ready
(虽然这应该是自动完成的)。因此,在调用getItem()
之前,您需要await storage.ready;
,如下所示:然后在你的
build
方法中,你可以使用一个FutureBuilder<T>()
来构建你的UI。klsxnrf12#
本地存储有一个
ready
方法,这意味着需要一段时间才能访问存储你的保存方法是
async
和你设置项目与await
关键字,但当你再次启动应用程序你得到的项目没有await
关键字尝试创建获取项目的方法
fcwjkofz3#
如果你为它创建了一个抽象,你需要在main函数中初始化它,比如
System. out. println();
通过这种方式,我们确信存储器可用。