将 react-rails 与作为依赖项做出反应的包一起使用

Use react-rails with packages that have react as dependency

我一直在玩 rails-react,效果很好。最近我在 package.json.

中添加了 react-dropzone

当我 运行 npm install:

时出现以下错误

npm WARN EPEERINVALID react-dropzone@3.2.2 requires a peer of react@^0.14.0 but none was installed.

如果我明确添加 react 它会安装一切正常。

但是当我进入浏览器时,出现以下错误:

使用 react-rails (1.5.0)"react-dropzone": "^3.2.2"

我在此 post 中找到了解决方法。非常感谢作者。

问题是 rails-react 和 react-dropzone 都包含 react。

因此,我们可以删除来​​自 gem 的 #= require react 并使用反应库

除了一些折旧警告外,其他一切似乎都正常。

在 application.js 中,删除 #= require react#= require react_ujs

在components.js

//= require_self
//= require react_ujs

React = require('react');

在你的组件中你现在可以 require react var React = require('react');