2015-10-14 15 views
25

So habe ich Rails-Anwendungen, ich habe React-Rails-Gem installiert, richten Sie es ein und versuchen Sie, Testanwendung auszuführen.Uncaught ReferenceError: ReactDOM ist nicht definiert

Frisch installiert, wenn ich Hallo Welt Programm auszuführen tryed, dieser Fehler hapened:

Uncaught ReferenceError: ReactDOM is not defined

Das ist mein reagieren:

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); 

Seine gespeichert innen/app/assets/Javascripts/Komponenten /test.js.jsx Datei.

Rails 4.2.4 mit Ruby 2.2.3

Antwort

20

ReactDOM seit 0.14.0 verfügbar, so müssen Sie React.render verwenden (weil Sie eine Version 0.13.3 Reagieren haben) statt,

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

oder Ihre React Version aktualisieren und ReactDOM

Changes in React 0.14

+1

, die den Trick tat, bekam ich einen anderen Fehler, aber ich denke, ich werde nur das Juwel entfernen und installieren neueste Version manualy reagieren. Danke für die Antwort!!! – IvRRimUm

43

enthalten es kann die Rechtschreibung Problem sein - es ist ReactDOM, nicht ReactDom.

Dies hat im Laufe der Zeit mit neuen Release sicher

+0

Etwas Seltsames passiert hier. Ich bin mir nicht sicher, ob das anhand des verfügbaren Tutorials (https://facebook.github.io/react/docs/tutorial.html) korrekt sein sollte, aber meine App funktionierte tatsächlich, als ich ReactDom in ReactDOM änderte, wenn ich 15.0 verwendete. 1 und ReactDom 15.0.1. – Grisk

+1

Unglaublich. Ich habe nur eine Stunde damit verbracht, mir die Haare auszureißen und falsche Annahmen darüber getroffen, warum SystemJS (das war, was ich benutzte) mir sagte, ReactDom sei undefiniert. Endlich sah ich diese Antwort, ersetzte die Schreibweise durch ReactDOM, und es funktioniert ... Oh Junge. –

4

Stellen reagieren geändert, dass Sie react-dom.js aufgenommen haben. Sie können es aus CDN hinzufügen oder js Toolchain Ihrer Wahl verwenden.

Installing React - using a CDN

<script src="https://unpkg.com/[email protected]/dist/react.js"></script> 
<script src="https://unpkg.com/[email protected]/dist/react-dom.js"></script> 
Verwandte Themen