如何避免 reactjs 在 rails 和 reactjs 环境中被包含两次



我正在使用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 的方式。 也为我们设置了测试。

相关内容

最新更新