我遇到了这个:
https://github.com/ssorallen/turbo-react
我喜欢它的功能,我只是对如何在当前使用 React-Rails gem 的 Rails 项目中使用此代码感到有点困惑。
我最困惑的是将代码放在哪里,以便我可以使用 React Rails 将其读取到我的 Rails 宝石中。如果我将主JS文件粘贴到我的供应商/资产文件夹中,则会收到以下消息:
Uncaught ReferenceError: global is not defined
我知道我只是从根本上误解了如何将这种JS文件包含在我的Rails项目中。
src/turbo-react.js 适用于 Node.js 环境,而不是浏览器环境。我看到另一个文件,public/dist/turbo-react.min.js,它已被“编译”为在浏览器中运行(使用Webpack)。您应该将该文件复制到供应商/资产
中,然后在应用程序中需要它.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 的概念,浏览器中不存在。
你正在寻找这个我猜:https://github.com/ssorallen/turbo_react-rails
安装说明:
>
将此行添加到应用程序的 Gemfile:
宝石“turbo_react轨”
安装更新的宝石
$ 捆绑安装
在 Turbolinks 之后的 JavaScript 文件中需要 turbo-react ,例如 “application.js”:
//= 涡轮链接 //= 需要涡轮反应
就是这样。现在,如果您单击Web应用程序中的任何链接,则应通过Ajax加载并使用React替换页面中的标记。