uniapp getStorageSync如何使用

在uniapp中使用getStorageSync同步获取缓存数据时,控制台报错"getStorageSync:fail parameter error"。我的代码如下:

try {
  const value = uni.getStorageSync('key');
  console.log(value);
} catch (e) {
  console.error(e);
}

请问这个错误是什么原因导致的?正确的使用方法应该是怎样的?是否需要注意key值的类型限制?

2 回复

在uniapp中,使用uni.getStorageSync(key)同步获取本地存储的数据。例如:let data = uni.getStorageSync('key')。如果key不存在,返回空字符串。


在 UniApp 中,uni.getStorageSync 是一个同步方法,用于从本地存储中获取指定 key 对应的数据。它直接从缓存中读取数据,无需回调函数,适用于需要立即获取数据的场景。

使用方法

语法

let data = uni.getStorageSync(key);
  • key:字符串类型,表示要获取的数据的键名。
  • 返回值:返回 key 对应的数据(任何类型)。如果 key 不存在或数据已过期,返回空字符串。

示例代码

// 从本地存储中获取 key 为 'userInfo' 的数据
try {
  let userInfo = uni.getStorageSync('userInfo');
  if (userInfo) {
    console.log('获取成功:', userInfo); // 输出数据,例如 {name: '张三', age: 20}
  } else {
    console.log('数据不存在');
  }
} catch (e) {
  console.error('获取失败:', e); // 处理可能的异常
}

注意事项

  1. 同步操作getStorageSync 是同步方法,会阻塞后续代码执行,但通常影响很小。
  2. 数据大小限制:单个 key 允许存储的最大数据约为 1MB,总存储空间因平台而异(通常 10MB)。
  3. 异常处理:建议使用 try-catch 包裹代码,避免因存储异常导致应用崩溃。
  4. 数据过期:本地存储的数据没有自动过期机制,需手动管理。

相关方法

  • 存储数据uni.setStorageSync(key, data)
  • 异步获取uni.getStorage({key, success, fail})(适用于非阻塞场景)

如果存储的是对象或数组,getStorageSync 会自动解析为对应类型。确保 key 存在,否则返回空值。

回到顶部