Flutter SpUtil插件无法存取数据

前言

SpUtil 很多项目中都会用到,存取本地数据。但是今天就遇到了一个奇怪的问题,一直无法存取数据,试了各种方法,什么初始化的问题,存取方法的问题,各种方式:

  1. 检查导入的库
    import 'package:flutter_sputil/flutter_sputil.dart';
    import 'package:sp_util/sp_util.dart';

  2. 初始化SpUtil
    在使用SpUtil之前,确保你已经初始化了它。通常,在应用的启动阶段(例如在main.dart的runApp方法之前)进行初始化:

void main() async {
  await SpUtil.getInstance();
  runApp(MyApp());
}
  1. 确保你使用正确的方法来存储数据。以下是一个基本的存储和读取数据的示例:
await SpUtil.putString('key', 'value'); // 存储字符串
String value = SpUtil.getString('key'); // 读取字符串
  1. 由于SpUtil的操作通常是异步的,确保你在调用这些方法时使用了await或者正确地处理了异步操作。例如:
    await SpUtil.putString('key', 'value'); // 使用await确保数据已经保存

甚至反复重启IDE和电脑。
然并卵,始终不行,还以为这个插件有问题了呢,但是别的项目都没有问题的。
网上找了一翻也没解决,

SpUtil 踩坑记:刚启动应用时无法存取数据

直到刚才看到这篇博客:
https://blog.csdn.net/haha223545/article/details/105482556/
就像博主说的:
感觉可能是因为SpUtil这个类需要异步初始化,导致前期未初始化前不可调用其 API,必须倒计时一段时间后再调用。

SpUtil的初始化在应用一启动就已经调用了:
await SpUtil.getInstance();
并且也加了await 但是并没有用,在应用启动几秒钟再调用就没有问题了,应该这个初始化还没有完成,导致的。

记录一下,避免大家踩坑。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。