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); // 处理可能的异常
}
注意事项
- 同步操作:
getStorageSync是同步方法,会阻塞后续代码执行,但通常影响很小。 - 数据大小限制:单个 key 允许存储的最大数据约为 1MB,总存储空间因平台而异(通常 10MB)。
- 异常处理:建议使用
try-catch包裹代码,避免因存储异常导致应用崩溃。 - 数据过期:本地存储的数据没有自动过期机制,需手动管理。
相关方法
- 存储数据:
uni.setStorageSync(key, data) - 异步获取:
uni.getStorage({key, success, fail})(适用于非阻塞场景)
如果存储的是对象或数组,getStorageSync 会自动解析为对应类型。确保 key 存在,否则返回空值。

