Reactjs-rails 预渲染问题

Reactjs-rails troubles with pre-rendering

我使用 react-rails gem 并遇到了特定的问题:预渲染不起作用。我已经编写了代码,但向我发送了一个例外:

Encountered error "ReferenceError: Terminal is not defined" when prerendering Terminal with {}

这是我的代码来源:

#= require jquery
#= require jquery_ujs
#= require turbolinks
#= require react
#= require react_ujs
#= require components
#= require_tree .

components.js.coffee

#= require_tree ./components

terminal.js.jsx.coffee

Terminal = React.createClass
  render: ->
    `<div>fffs</div>`

和视图:

= react_component 'Terminal', {}, prerender: true

我正在使用默认 react-rails 设置,但不知道出了什么问题(我不明白为什么 React 找不到 Terminal 组件)。

您使用 prerender: true 进行服务器渲染,因此您需要确保您的组件 全球可访问 :

@Terminal = React.createClass
  render: ->
    `<div>fffs</div>`

react-rails documentation 上阅读更多相关信息。