我正在尝试使用var data={
teams:5, points:25,team1:5,team2:10, team3:5, team4:0, team5:5};
localStorage ("save", data);
等在用户的计算机中设置存储空间。但我不确定该值是否可以是对象。我已经检查了互联网,但我似乎无法在那里找到明确的答案。
const {t} = this.props;
<li>{ t(nav.home, {defaultValue : "MY HOME"}) }</li>
思想?
答案 0 :(得分:4)
不,密钥和值必须是DOMString
。见https://developer.mozilla.org/en-US/docs/Web/API/Storage/setItem
您可以做的是在设置之前将数据序列化为JSON
localStorage.setItem('save', JSON.stringify(data))
读取值时,您可以将解析回对象
let saveData = JSON.parse(localStorage.getItem('save'))
答案 1 :(得分:2)
本地存储仅限于处理字符串键/值对,您可以使用JSON.stringify并在获取值JSON.parse时执行以下操作
var testObject = { {name:"test", time:"Date 2017-02-03T08:38:04.449Z"} };
//将对象存入存储
localStorage.setItem('testObject', JSON.stringify(testObject));
//从存储中检索对象
var retrievedObject = localStorage.getItem('testObject');
console.log('retrievedObject: ', JSON.parse(retrievedObject));
答案 2 :(得分:1)
不,localstorage将字符串作为并保存。如果要保存任何对象,请将其转换为字符串,然后保存。 从本地存储中获取它时,我们得到字符串。你可以很容易地把它变成对象。 如果您直接将对象保存到localStorage,那么它将以&#34; [object Object]&#34; 的方式保存,当从localStorage获取它时,您将获得&# 34; [object Object]&#34; as String。
错误代码:
var data={teams:5, points:25,team1:5,team2:10, team3:5, team4:0, team5:5};
localStorage.setItem("save", data);
localStorage.getItem("save")
您将获得&#34; [object Object]&#34;
正确代码:
var data={teams:5, points:25,team1:5,team2:10, team3:5, team4:0, team5:5};
localStorage.setItem("save",JSON.stringify(data));
localStorage.getItem("save")
从localStorage获取值
错误代码:
localStorage.getItem("save")
它将以字符串形式获取数据。
正确代码:
JSON.parse(localStorage.getItem("save"))
它将以对象的形式返回数据。
我希望解决方案得到很好的解释。
答案 3 :(得分:0)
不,不可能,但你可以使用stringify。例如:
localStorage.setItem('user', JSON.stringify(r.user));
答案 4 :(得分:0)
您需要使用localStorage.setItem(keyName, keyValue);
对于存储对象,您可以使用JSON.stringify(object)
将对象转换为字符串。
来自MDN
<强>的keyName 强>
一个DOMString,包含您想要的键的名称 创建/更新。<强>的keyValue 强>
包含您想要的值的DOMString 给出你正在创建/更新的密钥。