Как избежать реакции, чтобы дважды включиться в среду рельсов и реагировать?
Я использую реактивные рельсы и browserify. В приложении.js я использую
// require react
// require react-ujs
Также я использую tcomb-форму с помощью
var t=require("tcomb-form")
В результате я увидел, что responsejs дважды включен в мой конвейер активов.
Как правильно использовать реактив с рельсами?
РЕДАКТИРОВАТЬ:
Между прочим, если вы видите эту ошибку в вашей консоли, возможно, у вас та же самая проблема с включенной в нее реакцией дважды.
[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.
3 ответа
Я обнаружил, что реакция реагировала дважды в
app/assets/javascripts/server_rendering.js
Когда я убрал линию
//= require react-server
это исправило мои проблемы и избавилось от ошибки addComponentAsRefTo(). Пожалуйста, имейте в виду, что я еще не пытался развернуть приложение, но это сработало для того, чтобы заставить его работать.
//= require_self
//= require react_ujs
global.React = require('react');
Вот как я использую реакцию с Browserify & Rails. Устанавливает нас и на тестирование.
Кстати, обходной путь, который я нашел, состоит в том, чтобы удалить следующее из application.js
// require react
// require react-ujs
и просто скопируйте и вставьте исходный код response-ujs в application.js и используйте
var React = require("react");
Я знаю, что это не элегантно, если у вас есть предложения лучше, пожалуйста, дайте мне знать.