React-rails:带有 { prerender: true } 问题的组件

React-rails: Component with { prerender: true } issue

我正在项目中使用 react-rails gem。

每当我在 react_component 帮助程序中传递 {prerender: true} 时,我都会收到此错误:

Encountered error "ReferenceError: ReactDOMServer is not defined" when prerendering UsersList with

我也遇到了同样的问题,还没找到合适的解决办法。我在 gem 的 github 回购上创建了一个问题。到目前为止,有一个解决方法(针对另一个问题,但它对我有用):

Copy/pasted 来自 issue #443

  1. 确保 components.js 已编译 (Rails.application.config.assets.precompile += %w( components.js ))
  2. //= require react-server 添加到您的 components.js 文件
  3. 仅指定 components.js 用于服务器渲染:

    config.react.server_renderer_options = { files: ["components.js"], # files to load for prerendering }

更新:

降级以下 gems:sprockets (2.12.4) 和 sprockets-rails (2.3.3) 似乎可以避免这个问题。