如何将这个 React 库与 React-Rails 一起使用
Posted
技术标签:
【中文标题】如何将这个 React 库与 React-Rails 一起使用【英文标题】:How can I use this React library with React-Rails 【发布时间】:2015-07-03 07:11:47 【问题描述】:我遇到了这个:
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 项目中。
【问题讨论】:
什么特别让你困惑? 我想知道我把 js 文件放在哪里以便正确使用它们。我不能只将它们添加到供应商资产中,因为它们依赖于全局变量并且需要无法识别的语句。 请编辑您的问题以解释您的困惑。没有足够的人知道如何提供帮助。 抱歉,说得更清楚了。 【参考方案1】: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 概念。
【讨论】:
【参考方案2】:我猜你正在搜索这个:https://github.com/ssorallen/turbo_react-rails
安装说明:
将此行添加到应用程序的 Gemfile:
gem 'turbo_react-rails'
安装更新的 gems
$ bundle install
在 Turbolinks 之后的 javascript 文件中需要 turbo-react,例如“application.js”:
//= turbolinks
//= require turbo-react
就是这样。现在,如果您单击 Web 应用程序中的任何链接,它应该通过 Ajax 加载并使用 React 替换页面中的标签。
【讨论】:
以上是关于如何将这个 React 库与 React-Rails 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将 Material UI 库与 React Native 一起使用?