2017-10-06 82 views
0

我试图把用Immutable创建的Map对象放到localstorage中,然后再检索它。我正在测试,由于某种原因我在标题中出现错误。这里是我更新本地存储和检索的地方。未捕获TypeError:auth.get不是一个函数

 this.props.dispatch(saveAuth(defaultAuth)) 
 
     localStorage.setItem('auth', defaultAuth); 
 

 
     const auth = localStorage.getItem('auth'); 
 

 
     console.log(auth.get('token'));

如果我CONSOLE.LOG(AUTH)返回喜欢对象,以便: 地图{ “用户类型”: “管理”, “令牌”:“eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOjEsImlhdCI6MTUwNzI2MjczMH0.hqnqtjZmX8tPuuJ7bkv3DgQmNpA3- OQhlZoQuFI3IF8“}

回答

1

本地存储将值存储为字符串,因此这就是为什么当您尝试使用获取方法时出现错误。

我建议你只将标记字符串存储在本地存储中。

如果您需要,那么您可以在检索该值后创建一个新的地图。

如果你真的需要存储整个地图那么这可能会帮助您:

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)) 
} 
相关问题