使用反应服务器渲染时,窗口未定义

时间:2016-04-18 14:42:27

标签: reactjs server rendering

我正在使用服务器渲染进行反应项目。我发现我不能使用窗口(/ location / localStorage ...)。它将在服务器渲染进度中崩溃。此外,如果我使用仅适用于浏览器的库,它也会崩溃甚至导入/仅需要lib。测试是可用的一切,有时我必须编写更多代码处理服务器渲染。这很脏,让我累。还有其他解决方法吗?

1 个答案:

答案 0 :(得分:0)

我今天遇到了同样的问题“只有浏览器可用的库”,即使用窗口的那个(在我的情况下是react-chartjs-2)。

在挖掘一下后,您可以使用以下NPM包来修复它:https://www.npmjs.com/package/window-or-global

如果您不想使用外部包,还可以检查server.js中是否定义了windows,如果没有,则创建一个全局窗口变量:

if (typeof(window) == 'undefined') global.window = new Object();