我试图将使用Immutable创建的Map对象放入localstorage中,然后再检索它。我正在测试,由于某种原因,我在标题中得到错误。这是我更新本地存储和检索的地方。
this.props.dispatch(saveAuth(defaultAuth))
localStorage.setItem('auth', defaultAuth);
const auth = localStorage.getItem('auth');
console.log(auth.get('token'));
如果我是console.log(auth),它会像这样返回对象: 地图{“userType”:“admin”,“token”:“eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOjEsImlhdCI6MTUwNzI2MjczMH0.hqnqtjZmX8tPuuJ7bkv3DgQmNpA3-OQhlZoQuFI3IF8”}
答案 0 :(得分:1)
本地存储将值存储为字符串,因此这就是您在尝试使用 get 方法时出错的原因。
我建议您只将令牌字符串存储在本地存储中。
如果需要,则可以在检索值后创建新地图。
如果您确实需要存储整个地图,那么这可能会对您有所帮助:
http://2ality.com/2015/08/es6-map-json.html
function mapToJson(map) {
return JSON.stringify([...map])
}
function jsonToMap(jsonStr) {
return new Map(JSON.parse(jsonStr))
}