2014-10-31 1 views
6

JSX Transformator verursacht Fehler

Wenn ich meine Dateien konvertieren reagieren mit dem Konverter von reagieren WerkzeugJSX Converter React.createElement mit ("h1", null) anstelle von React.DOM.h1 (null)

 $ jsx public/dev/jsx public/prod/js --no-cache-dir 

Oder wenn ich mit Grunzen reagieren konvertieren

 $ grunt react 

Meine Produktionsdatei bricht, weil die Co nversion verwendet React.createElement und der Fehler besagt, dass diese Funktion nicht definiert ist.

 <h1>{this.state.title}</h1> 

konvertiert zu:

 React.createElement("div", null, 
     React.createElement("h1", null, this.state.title) 

statt:

 React.DOM.h1(null, this.state.title) 

Die Live-Konverter funktioniert gut, weil es React.DOM.h1(null, this.state.title) verwendet. Diese Codezeile funktioniert gut mit reagieren, aber die React.createElement() Funktion funktioniert nicht und wird nicht gefunden.

Wie kann ich meinen Auto-Konverter, entweder JSX oder Grunt, zwingen, zu statt React.createElement(h1, null) zu konvertieren. Warum benutzt der Konverter diese Funktion?

Antwort

4

Ich hatte den gleichen Fehler mit der Kaffee-Reaktion-Transformation-Bibliothek. Diese Bibliotheken werden für React 0.12 aktualisiert. Wenn du immer noch auf React 0.11 bist, musst du wahrscheinlich grunt-react auf eine etwas ältere Version zurücksetzen oder auf React 0.12 stoßen.

+0

Verbrachte 3 Tage, um dies herauszufinden. Vielen Dank! – ArieDov

+0

Danke! Wenn du browserify verwendest, stelle sicher, dass du auch die Version bummelst (0.17 hat für mich funktioniert) – kunigami

0

Ja, ich habe tatsächlich auf React 0.12 aktualisiert und es fing an zu arbeiten ... Danke.