【问题标题】:React JSX integration with erb and Ruby block syntaxReact JSX 与 erb 和 Ruby 块语法的集成
【发布时间】:2016-02-01 15:00:06
【问题描述】:

在我的app/assets/javascripts/components/navbar.js.jsx.erb 中,我可以在组件的渲染函数中编写类似这样的内容(我正在使用 gem react-rails):

class Navbar extends React.Component {
  render() {
    return(
      <div className="navbar-header">
        <ul>
          <li>
            <%= link_to root_path, className: 'navbar-brand' do %>
              <span className='glyphicon glyphicon-home'></span>
              &nbsp;
              <%= I18n.t('menu.now') %>
            <% end %>
          </li>
          <li><%= link_to I18n.t('menu.archive'), archive_path%></li>
        </ul>
      </div>
    );
  }
}

除了link_to with 块外,一切正常,这给了我一个语法错误:

语法错误,意外的keyword_end,需要')'

如果我删除块,一切正常。有什么想法吗?

PS:为了使用 Rails 助手,我在config/initializers/assets.rb 中添加了这些行:

# Include Rails helpers in the assets pipeline
Rails.application.config.assets.configure do |env|
  env.context_class.class_eval do
    include ActionView::Helpers
    include Rails.application.routes.url_helpers
  end
end

【问题讨论】:

    标签: ruby-on-rails syntax reactjs erb react-jsx


    【解决方案1】:

    当你有一个块时,我认为你需要在参数周围加上括号

    【讨论】:

    • link_to(root_path, className: 'navbar-brand') do同样的问题
    【解决方案2】:

    在 github react-rails 页面上有人回答了这个问题,请参阅此评论:https://github.com/reactjs/react-rails/issues/211#issuecomment-178119941

    【讨论】:

    • 你能描述一下你是怎么解决的吗?评论中的链接无效,我不明白评论。就我而言,我使用带有 react-rails 和 browserify-rails gem 的 Rails 5。如果我将“.erb”附加到 .js 文件,Rails 无法找到该文件。
    • 这对我也不起作用。尝试了所有建议。
    猜你喜欢
    • 2019-01-07
    • 1970-01-01
    • 2022-06-26
    • 1970-01-01
    • 2019-12-24
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多