【发布时间】:2016-10-22 09:34:34
【问题描述】:
当服务器端渲染一个使用window或localStorage这些浏览器全局变量的React组件时,我总是需要添加
if (typeof localStorage !== 'undefined') { // then do stuff }
摆脱那些“localStorage 未定义”错误。
还有其他不错的解决方案吗?
编辑我的用例
-
window用于其属性,如innerwitdth,并添加原始浏览器事件,如resize -
localStorage是存储JWT令牌
【问题讨论】:
-
不使用它或添加另一种检查客户端或服务器的条件,或使用cookie而不是localStorage
-
同构应用程序通常只使用会话维护状态服务器端。例如,请参阅this。这比有条件地维护客户端状态并在事后尝试在服务器端找出等效的替代方案要简单得多。
-
@DiegoHaz react cookie 有 4kb 数据的限制..
标签: javascript reactjs server-side-rendering