React JSX 与 erb 和 Ruby 块语法的集成
React JSX integration with erb and Ruby block syntax
在我的 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>
<%= I18n.t('menu.now') %>
<% end %>
</li>
<li><%= link_to I18n.t('menu.archive'), archive_path%></li>
</ul>
</div>
);
}
}
除 link_to
with 块外,一切正常,它给我一个语法错误:
syntax error, unexpected keyword_end, expecting ')'
如果我删除该块,一切正常。有什么想法吗?
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
我认为当后面有一个块时,您需要在参数周围加上括号
在 github react-rails 页面上有人对此问题有答案,请参阅此评论:https://github.com/reactjs/react-rails/issues/211#issuecomment-178119941
在我的 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>
<%= I18n.t('menu.now') %>
<% end %>
</li>
<li><%= link_to I18n.t('menu.archive'), archive_path%></li>
</ul>
</div>
);
}
}
除 link_to
with 块外,一切正常,它给我一个语法错误:
syntax error, unexpected keyword_end, expecting ')'
如果我删除该块,一切正常。有什么想法吗?
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
我认为当后面有一个块时,您需要在参数周围加上括号
在 github react-rails 页面上有人对此问题有答案,请参阅此评论:https://github.com/reactjs/react-rails/issues/211#issuecomment-178119941