如何将这个 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");

globalrequire 都是浏览器中不存在的 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 一起使用?

Codeigniter,如何将第三方文件夹中的 jwt 库与模型结合使用?

67 个JavaScript和CSS实用工具库与资源

如何将产品媒体库与收藏一起加载?

静态库与Windows平台导入库

如何将 C++ 库与 Python 集成?