2016-11-03 40 views
3

我目前正在嘗試保存我的sessionStorage之前呈現發生。Initiliaze&在React中使用sessionStorage?

我的代碼是這樣的:

componentWillMount() { 
     sessionStorage.setItem("isUserLogged", false); 
    } 

它導致沒有定義sessionStorage錯誤。在渲染髮生之前,我如何在React中初始化我的sessionStorage

+2

嘗試window.sessionStorage.setItem( 「鑰匙」,「值」); –

+0

@Kartik_Agarwal剛剛嘗試過,它現在顯示'窗口'沒有定義 –

+0

您正在使用服務器端的回傳或客戶端? –

回答

4

使用服務器端渲染時,SessionStorage不可用(可以對其進行模擬,但數據不會提供給用戶)。

它僅在瀏覽器中的可用文字的存儲https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

window.sessionStorage.setItem("key", "value"); 

從存儲使用檢索項

window.sessionStorage.getItem("key"); 
+3

這是一個老問題,但您能否指出sessionStorage將在組件安裝時起作用。這是'sessionStorage'將被定義的時刻。 –

+0

答案是正確的,它只能在客戶端使用。然而,要正確回答上述問題,IMO的答案應該表明你可以在componentDidMount中利用這個...在React組件完全在客戶端之後發生。您要使用的模式將使用默認設置初始化狀態變量,然後在安裝組件後使用會話信息更新它。 – engineerDave