未捕获的TypeError:auth.get不是函数

时间:2017-10-06 04:05:58

标签: reactjs

我试图将使用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”}

1 个答案:

答案 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))
}