2015-04-18 13 views
6

Sto usando reatt-rail e browserify. Negli application.js io usoCome evitare che reactjs venga incluso due volte in un binario e in un ambiente reactjs?

// require react 
// require react-ujs 

Anche io uso tcomb-forma utilizzando

var t=require("tcomb-form") 

Come risultato ho visto reactjs è incluso due volte nella mia pipeline di risparmio.

Come devo utilizzare correttamente reactjs con le guide?

EDIT:

dal modo in cui, se si vede questo errore nella console, probabilmente si stanno avendo lo stesso problema con reactjs preso incluso due volte.

[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. 

risposta

0

tra l'altro, la soluzione mi è venuta è quello di rimuovere quanto segue dal application.js

// require react 
// require react-ujs 

e basta copiare e incollare il codice sorgente per reagire-UJS in application.js e utilizzare

var React = require("react"); 

so che non è elegante, se avete suggerimenti migliori, per favore fatemelo sapere.

0
//= require_self 
//= require react_ujs 

global.React = require('react'); 

Questo è come mi sto usando reagire con Browserify & Rails. Ci imposta anche per i test.

+0

proverò, quindi la tua strada react_ujs non si lamenta di non riuscire a trovare React? – ziweizhou

+0

scusa se non funziona, a meno che tu dichiari Reagire come variabile globale. altrimenti react_ujs si lamenterà di non riuscire a trovare React. Riferimento non rilevato Errore: React non definito – ziweizhou

+0

Aye. Ho sbagliato a dattilografare, avrei dovuto fare lo scopo globale. Risolto sopra. Un altro modo in cui ho cercato di far funzionare il rendering lato server è precompilare/browserify e richiedere il bundle sopra react_ujs. Ancora lavorando su questo e impostando i test di Mocha. –

1

ho trovato che reagiscono è stato fatto riferimento due volte in

app/assets/javascripts/server_rendering.js 

Quando ho rimosso la linea

//= require react-server 

riparato i miei problemi e si liberò dell'errore addComponentAsRefTo(). Ricorda che non ho ancora provato a distribuire l'app, ma questo ha funzionato per farla diventare cruda.