Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在universal app中呈现reactjs组件之前获取本地存储?_Node.js_Local Storage_React Router_Redux - Fatal编程技术网

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
信息。