ruby-on-rails - Reactjs-rails 的预渲染问题

标签 ruby-on-rails ruby coffeescript reactjs react-rails

我使用 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>`

以及 View :

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

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

最佳答案

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

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

了解更多信息 react-rails documentation .

关于ruby-on-rails - Reactjs-rails 的预渲染问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29609810/

相关文章:

jquery - 在 ruby​​-on-rails 应用程序上使用 AJAX 提交表单后,如何让 jQuery 更新页面上的元素?

javascript - CoffeeScript 编译错误

ruby-on-rails - user.admin 在哪里?在 rails-devise-pundit 入门应用程序中定义?

ruby-on-rails - 使用 Elasticsearch 与 Searchkick on Rails 通过关联查找用户项目?

ruby - << 符号绕过 = 在 ruby​​ 中签名吗?

python - 厌倦了 ASP.NET,我应该学习以下哪些内容,为什么?

javascript - 在 CoffeeScript 中为我的单例类定义属性 getter

javascript - 如何将 setTimeout() 与 CoffeeScript 重新同步? rails 5

ruby-on-rails - 如何在 Ruby on Rails 中处理全局变量

ruby - 将哈希传递给 p 会导致语法错误