如何将此React库与React-Rails一起使用

时间:2015-04-24 15:31:03

标签: ruby-on-rails ruby npm reactjs react-rails

我发现了这个:

https://github.com/ssorallen/turbo-react

我喜欢它的功能,我对如何在我目前使用React-Rails gem

的Rails项目中使用此代码感到困惑

我很担心放置代码的位置,以便我可以使用React Rails将其读入我的Rails gem。如果我将主JS文件粘贴到我的vendor / assets文件夹中,我会收到以下消息:

Uncaught ReferenceError: global is not defined

我知道我从根本上误解了如何将这种JS文件包含到我的Rails项目中。

2 个答案:

答案 0 :(得分:2)

src/turbo-react.js适用于Node.js环境,而不适用于浏览器环境。我看到另一个文件public/dist/turbo-react.min.js,它已被“编译”为在浏览器中运行(使用Webpack)。您应该将该文件复制到vendor/assets,然后在application.js中将其要求。

src/turbo-react.js的前几行给了我一些关于Node.js的信号:

if (global.Turbolinks === undefined) {
  throw "Missing Turbolinks dependency. TurboReact requires Turbolinks be included before it.";
}

var HTMLtoJSX = require("htmltojsx");
var JSXTransformer = require("react-tools");
var React = require("react");

globalrequire都是Node.js概念,在浏览器中不存在。

答案 1 :(得分:1)

我猜你正在寻找这个:https://github.com/ssorallen/turbo_react-rails

安装说明:

  1. 将此行添加到应用程序的Gemfile:

    gem 'turbo_react-rails'

  2. 安装更新后的宝石

    $ bundle install

  3. 在Turbolinks之后需要像“application.js”这样的JavaScript文件中的turbo-react:

    //= turbolinks //= require turbo-react

  4. 就是这样。现在,如果您单击Web应用程序中的任何链接,它应该通过Ajax加载并使用React替换页面中的标记。