2015-10-14 10 views
25

Quindi ho le applicazioni Rails, ho installato react-rails gem, l'ho configurato e ho provato a eseguire l'applicazione di test.Uncaught ReferenceError: ReactDOM non è definito

appena installato, quando ho provato a eseguire ciao programma di mondo, questo errore hapened:

Uncaught ReferenceError: ReactDOM is not defined

Questa è la mia reagire:

var HelloWorld = React.createClass({ 
    render: function() { 
    return (
     <p> 
     Hello, <input type="text" placeholder="Your name here" />! 
     It is {this.props.date.toTimeString()} 
     </p> 
    ); 
    } 
}); 

setInterval(function() { 
    ReactDOM.render(
    <HelloWorld date={new Date()} />, 
    document.getElementById('example') 
); 
}, 500); 

sua salvati all'interno/app/attività/javascripts/componenti /test.js.jsx file.

Rails 4.2.4 con Ruby 2.2.3

risposta

20

ReactDOM disponibile dal 0.14.0, quindi è necessario utilizzare React.render (perché avete un Reagire versione 0.13.3), invece,

setInterval(function() { 
    React.render(
    <HelloWorld date={new Date()} />, 
    document.getElementById('example') 
); 
}, 500); 

o aggiornare la versione React e comprendono ReactDOM

Changes in React 0.14

+1

Che ha fatto il trucco, ho avuto un altro errore, ma penso che è sufficiente rimuovere la gemma ed installare più recente versione reagiscono manualy. Grazie per la risposta!!! – IvRRimUm

43

può essere il problema ortografico - è ReactDOM, non ReactDom.

Questo è cambiato nel corso del tempo con la nuova release di reagire

+0

Qui sta succedendo qualcosa di strano. Non sono sicuro che questo dovrebbe essere corretto sulla base del tutorial disponibile (https://facebook.github.io/react/docs/tutorial.html) ma la mia app ha effettivamente iniziato a funzionare quando ho cambiato ReactDom in ReactDOM quando uso 15.0. 1 e ReactDom 15.0.1. – Grisk

+1

Incredibile. Ho passato solo un'ora a strapparmi i capelli facendo supposizioni sbagliate sul motivo per cui SystemJS (questo è quello che stavo usando) mi diceva che ReactDom era indefinito. Finalmente ho visto questa risposta, ha sostituito l'ortografia a ReactDOM, e funziona ... Oh ragazzo. –