Как избежать реакции, чтобы дважды включиться в среду рельсов и реагировать?

Я использую реактивные рельсы и 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");

Я знаю, что это не элегантно, если у вас есть предложения лучше, пожалуйста, дайте мне знать.

Другие вопросы по тегам