Ich verwende React mit Webpack und Babel. Ich bekomme einen Laufzeitfehler:
Nicht abgerufener ReferenceError: ReactDom ist nicht definiert
Meine Reaktionsversion ist:
"devDependencies": {
"phantomjs-polyfill": "0.0.2",
"react-addons-test-utils": "^0.14.8"
},
"dependencies": {
"react": "^0.14.7",
"react-dom": "^0.14.7"
},
und mein Code lautet:
import React from 'react';
import ReactDOM from 'react-dom';
import Main from './components/main';
ReactDom.render(<Main />, document.getElementById('root'));
Was mache ich falsch?
Sie haben ReactDOM
, aber Sie haben keine ReactDom
(Groß- und Kleinschreibung beachten)
ReactDOM.render(<Main />, document.getElementById('root'));
ReactDOM
! = ReactDom
. Es gibt zwei Dinge, die Sie tun können, um das Problem zu beheben.
import React from 'react';
import ReactDOM from 'react-dom'; // you used 'react-dom' as 'ReactDOM'
import Main from './components/main';
ReactDom.render(<Main />, document.getElementById('root')); // you referred to it as 'ReactDom' which is wrong.
Werden Sie ReactDOM
! = ReactDom
. Sie müssen also einen dieser Orte korrigieren, so dass beide Orte denselben Namen mit demselben Fall haben.
Der empfohlene Fix wäre:
import React from 'react';
import ReactDOM from 'react-dom'; // this is recommended
import Main from './components/main';
ReactDOM.render(<Main />, document.getElementById('root'));
Oder du kannst tun,
import React from 'react';
import ReactDom from 'react-dom';
import Main from './components/main';
ReactDom.render(<Main />, document.getElementById('root'));