我正在使用react-rails和browserify。在应用程序中.js我使用
// require react
// require react-ujs
我也使用 tcomb-form 通过使用
var t=require("tcomb-form")
结果,我看到 reactjs 在我的资产管道中包含两次。
我应该如何正确地将 reactjs 与 rails 一起使用?
编辑:
顺便说一句,如果您在控制台中看到此错误,则可能是您在包含两次 Reactjs 时遇到了相同的问题。
[Error] Error: Invariant Violation: addComponentAsRefTo(...): Only a ReactOwner can have refs. This usually means that you're trying to add a ref to a component that doesn't have an owner (that is, was not created inside of another component's render method). Try rendering this component inside of a new top-level component which will hold the ref.
我发现 react 在
app/assets/javascripts/server_rendering.js
当我删除该行时
//= require react-server
它修复了我的问题并摆脱了addComponentAsRefTo()错误。请记住,我还没有尝试部署该应用程序,但这对使其变得粗糙有效。
顺便说一下,我想出的解决方法是从应用程序中删除以下内容.js
// require react
// require react-ujs
只需在应用程序中复制并粘贴 React-uJs 的源代码.js即可使用
var React = require("react");
我知道这并不优雅,如果您有更好的建议,请告诉我。
//= require_self
//= require react_ujs
global.React = require('react');
这就是我使用 react 和 Browserify & Rails 的方式。 也为我们设置了测试。