Node.js 如何在universal app中呈现reactjs组件之前获取本地存储?
我正在将“某些”用户的会话数据存储在客户端的Node.js 如何在universal app中呈现reactjs组件之前获取本地存储?,node.js,local-storage,react-router,redux,Node.js,Local Storage,React Router,Redux,我正在将“某些”用户的会话数据存储在客户端的localStorage中,我需要在服务器渲染之后和reactjs应用程序加载之前获取这些数据,以便检查用户会话是否有效。如果用户会话有效,我用用户数据更新redux存储;否则,我就让它保持原样 我正在使用react路由器的oneterhook来检查用户的会话是否有效。问题是我正在请求保存在服务器端localStorage中的数据(我知道该数据不可用) 因此,我需要一种方法在服务器渲染后检查localStorage,并将其准备好用于oneter钩子 我
localStorage
中,我需要在服务器渲染之后和reactjs应用程序加载之前获取这些数据,以便检查用户会话是否有效。如果用户会话有效,我用用户数据更新redux存储;否则,我就让它保持原样
我正在使用react路由器的oneter
hook来检查用户的会话是否有效。问题是我正在请求保存在服务器端localStorage
中的数据(我知道该数据不可用)
因此,我需要一种方法在服务器渲染后检查localStorage
,并将其准备好用于oneter
钩子
我还想知道,在服务器端,是否有办法请求客户端的
localStorage
?您需要在client.js
文件中整理createStore
和render()
之间的逻辑
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')
);
从'redux'导入{createStore};
const store=createStore();
if(localStorage.get('token')){
dispatch(authenticate(localStorage.get('token'));
}
渲染(
,
document.getElementById('js-react')
);
请记住,如果
authenticate
action creator中有任何异步代码,则需要等待它完成,然后才能进行渲染。我还应该注意,目前无法在服务器上获取localStorage
信息。