用于响应、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 并修改样式或其他内容。这就是 reactreact-dom 包分开的原因。

与其通过 window.XXX 传递对象,不如考虑使用像 require.

这样的体面的依赖解决方案