2016-04-19 8 views
1

Ich bin sehr klar laden und Reagieren bis zu dem Punkt, wo es nicht finden kann.ReactDOM ist nicht definiert (aber innerhalb einer React-Methode)

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import Container from 'react-container'; 
import { UI } from 'touchstonejs'; 
import VoteContainer from '../components/vote-container.js'; 
import Solution from '../components/solution.js'; 
import moment from 'moment'; 

module.exports = React.createClass({ 
    addSolution() { 
    var solution = ReactDOM.findDOMNode(this.refs.solution).getElementsByTagName('input')[0].value, 
        ^~~~ ReactDOM is not defined 

Aber! Sobald ich addSolution ausführen, sind React und ReactDOM nicht verfügbar. Wie geht diese Variable plötzlich verloren? Was könnte ich tun, um es zu verlieren?

Dies ist der Knopf, der es in dieser Klasse nennen würde Render-Methode ..

<UI.Button type="primary" onTap={this.addSolution} > 
    Send 
</UI.Button> 
+2

ReactDOM ein separates Paket ist, müssen Sie eigentlich 'Import ReactDOM von‚reagieren-dom'' – Mijamo

+0

@Mijamo Großer Punkt hinzufügen. Ich habe vergessen, es hinzuzufügen. Aber dann tat ich und es gibt immer noch den gleichen Fehler. – Trip

+0

Ich weiß, dass es offensichtlich klingt und ich sehe, dass Sie reac-dom korrekt importieren, aber haben Sie beide Pakete installiert? 'npm installieren reagieren reagieren-dom'? –

Antwort

1

Seit v0.14, bekam ReactDOM in ein anderes Paket getrennt und da findDOMNode Teil ReactDOM, ist, um es zu benutzen innerhalb Ihrer Komponenten müssen Sie es enthalten. Zum Beispiel:

import React from 'react'; 
import ReactDOM from 'react-dom'; 

/* ... */ 

module.exports = React.createClass({ 
    addSolution: function() { 
    ReactDOM.findDOMNode(...) 
    } 
}) 
+0

Richtig verstehe ich diese Versionssituation. Aber selbst wenn ich diese beiden Importe berücksichtige, funktioniert es immer noch nicht. Tatsächlich arbeite ich in einer separaten, fast identischen Datei. Also nicht wirklich sicher, warum das so weitergeht – Trip

+0

Hmm .. komisch. Erhalten Sie immer noch den gleichen Fehler, wenn "ReactDOM" nicht definiert ist? Könntest du ein 'ls node_modules/| machen? grep react' und füge das Ergebnis hier ein? etwas, das vielleicht falsch mit Ihrem Module ... –

+0

Was gibt ist 'reagieren reagieren-addons-css-Übergang-Gruppe reagieren Behälter reagieren-dom reagieren-Wache reagieren-abgreifbar reagieren-timers' – Trip

Verwandte Themen