Uncaught ReferenceError: ReactDOM is not defined

82,719

Solution 1

ReactDOM available since version 0.14.0, so you need to use React.render (because you have a React version 0.13.3) instead,

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

or upgrade your React version and include ReactDOM

Changes in React 0.14

Solution 2

It may be the spelling issue - it is ReactDOM, not ReactDom.

This has changed over time with the new release of React

Solution 3

You have to import it

import ReactDOM from 'react-dom';

Solution 4

Make sure that you've included react-dom.js. You can add it from CDN or use js toolchain of your choice.

Installing React - using a CDN

<script src="https://unpkg.com/react@15/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@15/dist/react-dom.js"></script>

Solution 5

Make sure it's ReactDOM (case sensitive)
          class App extends React.Component {
            render() {
                return (
                    <div>
                        <div className="commentbox">Hello React ! </div>
                    </div>
                );
            }
        }
        ReactDOM.render(<App />, document.getElementById('root'));
Share:
82,719

Related videos on Youtube

IvRRimUm
Author by

IvRRimUm

I am a programmer/hacker.

Updated on July 09, 2022

Comments

  • IvRRimUm
    IvRRimUm almost 2 years

    So i have Rails applications, i installed react-rails gem, set it up and try to run test application.

    Freshly installed, when i tryed to run hello world program, this error hapened:

    Uncaught ReferenceError: ReactDOM is not defined

    This is my react:

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

    Its saved inside /app/assets/javascripts/components/test.js.jsx file.

    Rails 4.2.4 With Ruby 2.2.3

  • IvRRimUm
    IvRRimUm over 8 years
    That did the trick, i got another error, but i think i will just remove the gem and install newest react version manualy. Thanks for the response!!!
  • Grisk
    Grisk about 8 years
    Something strange is happening here. I'm not sure that this should be correct based on the tutorial available (facebook.github.io/react/docs/tutorial.html) but my app actually started working when I changed ReactDom to ReactDOM when using 15.0.1 and ReactDom 15.0.1.
  • Gilad Barner
    Gilad Barner almost 8 years
    Unbelievable. Just spent an hour tearing my hair out making wrong assumptions as to why SystemJS (that's what I was using) was telling me ReactDom was undefined. Finally saw this answer, replaced the spelling to ReactDOM, and it works...Oh boy.
  • Chandresh M
    Chandresh M almost 5 years
    Perfect click boss!
  • Harlin
    Harlin over 4 years
    Very common error. I've done this many times with ReactDOM. Watch out for it.