2017-10-06 61 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)) 
} 
相關問題