【问题标题】:How can I use this React library with React-Rails如何将这个 React 库与 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 文件放在哪里以便正确使用它们。我不能只将它们添加到供应商资产中,因为它们依赖于全局变量并且需要无法识别的语句。
  • 请编辑您的问题以解释您的困惑。没有足够的人知道如何提供帮助。
  • 抱歉,说得更清楚了。

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


【解决方案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

    安装说明:

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

      gem 'turbo_react-rails'

    2. 安装更新的 gems

      $ bundle install

    3. 在 Turbolinks 之后的 JavaScript 文件中需要 turbo-react,例如“application.js”:

      //= turbolinks //= require turbo-react

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-30
      相关资源
      最近更新 更多