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项目中。
答案 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");
global
和require
都是Node.js概念,在浏览器中不存在。
答案 1 :(得分:1)
我猜你正在寻找这个:https://github.com/ssorallen/turbo_react-rails
安装说明:
将此行添加到应用程序的Gemfile:
gem 'turbo_react-rails'
安装更新后的宝石
$ bundle install
在Turbolinks之后需要像“application.js”这样的JavaScript文件中的turbo-react:
//= turbolinks
//= require turbo-react
就是这样。现在,如果您单击Web应用程序中的任何链接,它应该通过Ajax加载并使用React替换页面中的标记。