Reactjs 巴贝尔节点错误';参考错误:未定义窗口';

Reactjs 巴贝尔节点错误';参考错误:未定义窗口';,reactjs,server-side-rendering,referenceerror,scrollmagic,babel-node,Reactjs,Server Side Rendering,Referenceerror,Scrollmagic,Babel Node,我的任务是为react应用程序实现服务器端渲染。我遵循了本教程的步骤:然后,按照实际应用程序的确切步骤进行操作。实现客户端渲染时,一切都很顺利,但在继续使用服务器端渲染时,我遇到了以下错误:“引用错误:未定义窗口” 问题是应用程序使用scrollmagic,这是一个仅客户端的库(注意:我在代码本身的任何scrollmagic引用中添加了条件“require”,但我找不到绕过模块的方法)。 我曾考虑在客户端添加scrollmagic库,但一旦删除它,就会从“require”语句中得到一个错误。 如



我的任务是为react应用程序实现服务器端渲染。我遵循了本教程的步骤:然后,按照实际应用程序的确切步骤进行操作。实现客户端渲染时,一切都很顺利,但在继续使用服务器端渲染时,我遇到了以下错误:“引用错误:未定义窗口”
问题是应用程序使用scrollmagic,这是一个仅客户端的库(注意:我在代码本身的任何scrollmagic引用中添加了条件“require”,但我找不到绕过模块的方法)。
我曾考虑在客户端添加scrollmagic库,但一旦删除它,就会从“require”语句中得到一个错误。
如果这是显而易见的,我很抱歉,但我是JavaScript新手,已经搜索了几天,到目前为止没有找到任何东西。如果我能提供任何其他信息,请让我知道!另外,如果你对我该如何处理这件事有什么建议,我洗耳恭听

致以最诚挚的问候,

Andrew

窗口对象是浏览器/客户端的属性,因此在服务器上执行javascript时,您将无法访问它。诸如:之类的库可以提供帮助,还可以添加条件逻辑,以便在执行依赖于窗口对象的代码之前检查窗口对象。

窗口对象是浏览器/客户端的属性,因此在服务器上执行javascript时,您将无权访问它。一个图书馆,如:可以帮助,除了@sconway建议在调用这些客户端方法时手动检查窗口是否存在之外,我过去使用的另一种方法是将代码放入
componentdiddupdate
生命周期方法


此方法保证不会在服务器上调用,仅在客户端上调用。

除了@sconway建议在调用这些客户端方法时手动检查是否存在窗口之外,我过去使用的另一种方法是将代码放入
componentDidUpdate
生命周期方法中

保证不会在服务器上调用此方法,仅在客户端上调用