2016-11-03 8 views
3

レンダリングが行われる前に、私は現在sessionStorageを保存しようとしています。Initiliaze&ReactでsessionStorageを使用していますか?

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

そのをsessionStorageが定義されていないエラーの原因:

私のコードは次のようなものです。レンダリングの前にReactでsessionStorageを初期化するにはどうすればよいですか?

+2

window.sessionStorage.setItemを試してみてください( "キー"、「値"); –

+0

@ Kartik_Agarwalちょうどそれを試しましたが、今は 'window'が定義されていません –

+0

あなたはサーバー側のレンダリングまたはクライアント側を使用していますか? –

答えて

4

サーバー側のレンダリングを使用している場合はSessionStorageを使用できません(ユーザーはモックできますが、ユーザーはデータを使用できません)。

ストレージの使用からアイテムを取得するには

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

それが唯一のブラウザでストレージへの書き込みのhttps://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

例利用可能です

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

これは古い質問ですが、コンポーネントがマウントされているときにsessionStorageが機能することを指摘できます。これが 'sessionStorage'が定義される瞬間です。 –

+0

答えは正しいですが、それはクライアント側でのみ利用可能です。しかし、上記の質問に適切に答えるためには、IMOはcomponentDidMountでこれを活用できると答えなければなりません。Reactコンポーネントが完全にクライアント側の後に起こります。使用するパターンは、デフォルト設定で状態変数を初期化し、コンポーネントがマウントされるとセッション情報で更新します。 – engineerDave

関連する問題