用于响应、webpack、节点项目的服务器端渲染因为 'window' 未定义而中断
server side rendering for react, webpack, node project breaking because 'window' undefined
尝试使用引用 window 的组件进行服务器端呈现时出现以下错误。例如,当我包含 slick-carousel (https://github.com/kenwheeler/slick) 时,我收到以下错误:
var Slick = window.Slick || {};
^
ReferenceError: window is not defined
我知道是因为 window 在尝试执行 SSR 时未定义,但不知道避免错误的最佳策略是什么。
基本上组件不应该依赖于DOM。只有一些钩子方法,例如 componentDidMount
可以,您可以在其中使用 .offsetHeight
并修改样式或其他内容。这就是 react
和 react-dom
包分开的原因。
与其通过 window.XXX
传递对象,不如考虑使用像 require
.
这样的体面的依赖解决方案
尝试使用引用 window 的组件进行服务器端呈现时出现以下错误。例如,当我包含 slick-carousel (https://github.com/kenwheeler/slick) 时,我收到以下错误:
var Slick = window.Slick || {};
^
ReferenceError: window is not defined
我知道是因为 window 在尝试执行 SSR 时未定义,但不知道避免错误的最佳策略是什么。
基本上组件不应该依赖于DOM。只有一些钩子方法,例如 componentDidMount
可以,您可以在其中使用 .offsetHeight
并修改样式或其他内容。这就是 react
和 react-dom
包分开的原因。
与其通过 window.XXX
传递对象,不如考虑使用像 require
.