在通用应用程序中呈现reactjs组件之前如何获取localStorage?

我将“一些”用户的会话数据存储在客户端的localStorage ,我需要在服务器呈现之后以及reactjs应用程序加载之前获取这些数据,以便检查用户会话是否有效。 如果用户会话有效,则使用用户数据更新Reduce存储; 否则,我保持原样。

我正在使用react-router的onEnter挂钩来检查用户的会话是否有效。 问题是我正在请求保存在服务器端的localStorage (我知道不可用)的数据。

因此,我需要一种方法来检查服务器渲染后的localStorage ,并准备好onEnter钩子。

我也想知道在服务器端是否有办法请求客户端的localStorage

你将需要在你的client.js文件中将createStorerender()之间的逻辑进行sorting。

 import {createStore} from 'redux'; const store = createStore(); if(localStorage.get('token')) { store.dispatch(authenticate(localStorage.get('token'))); } render( <Provider store={store}><App/></Provider>, document.getElementById('js-react') ); 

请记住,如果在authenticate操作创build者中有任何asynchronous代码,则需要等待它才能完成,然后才能呈现。