我知道react_on_rails
和react-rails
gem有向react组件传递数据的方法。例如,您可以执行以下操作:<%= react_component("HelloWorld", props: @some_props) %>
。
既然我们可以使用rails new myapp --webpack=react
和javascript packs
,我如何将数据或道具从rails视图传递到react组件?我可以做一些类似的事情吗:<%= javascript_pack tag 'hello_react', data: @users %>
?
我不想构建一个api,而且似乎没有一种首选的方法来实现我想要的。到目前为止,我看到的唯一可行的方法是在这篇文章中。
我认为最优雅的方法是使用react_rails
在rails 6中,首先需要添加react rails
Gemfile
gem 'react-rails'
然后运行发电机rails generate react:install
如果你还没有安装webpacker/rails,你需要做第一个
rails webpacker:install
rails webpacker:install:react
rails generate react:install
然后用生成器生成第一个反应组件
rails g react:component HelloWorld greeting:string
接下来用gem 的view_helper在你的html.erb中渲染它
<%= react_component("HelloWorld", { greeting: "Hello from react-rails." }) %>
第一个参数是react文件名,第二个参数是道具