SessionStorage 存对象刷新后取不出来怎么办?
我在用 sessionStorage 缓存用户配置对象,页面刷新后读取总是得到 “[object Object]” 字符串,根本没法用。明明存的时候是正常对象啊,是不是我哪里搞错了?
试过直接存对象,也试过 JSON.stringify 再存,但取出来还是不对。下面是我现在的代码:
const userConfig = { theme: 'dark', lang: 'zh' };
sessionStorage.setItem('config', userConfig);
// 刷新页面后
const saved = sessionStorage.getItem('config');
console.log(saved); // 输出 "[object Object]"
要解决这个问题很简单,存的时候把对象转成 JSON 字符串,取出来再解析回来就行。JSON.stringify 和 JSON.parse 就是干这个用的。
给你改一下代码:
这样就能正常存取对象了。记住了,跟 localStorage 一样,sessionStorage 只认字符串。有时候搞忘了这点就容易踩坑,我也被坑过不少次呢。