最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Simple “Hello World” in ReactJS not working - Stack Overflow

programmeradmin0浏览0评论

I am not getting hello world as an output. Can anyone tell me what i am missing , its a basic code , got an output in a different way using createElement function. I am new to react.

Code:

<!DOCTYPE html>
<html>
    <head>
        <title>My First App</title>
    </head>
    <body>
        <div id="react-app"></div>
        <script src=".14.0-rc1/react.js"></script>
        <script src=".14.0-rc1/react-dom.js"></script>

        <script type="text/jsx">

            class StoryBox extends React.Component{
                render(){
                    return(<div> Hello World </div> );
                }
            }

            var target= document.getElementById('react-app')
            ReactDOM.render(<StoryBox>,target);
        </script>
    </body>
</html>

I am not getting hello world as an output. Can anyone tell me what i am missing , its a basic code , got an output in a different way using createElement function. I am new to react.

Code:

<!DOCTYPE html>
<html>
    <head>
        <title>My First App</title>
    </head>
    <body>
        <div id="react-app"></div>
        <script src="https://cdn.jsdelivr/react/0.14.0-rc1/react.js"></script>
        <script src="https://cdn.jsdelivr/react/0.14.0-rc1/react-dom.js"></script>

        <script type="text/jsx">

            class StoryBox extends React.Component{
                render(){
                    return(<div> Hello World </div> );
                }
            }

            var target= document.getElementById('react-app')
            ReactDOM.render(<StoryBox>,target);
        </script>
    </body>
</html>
Share Improve this question edited Feb 16, 2018 at 7:11 Mayank Shukla 105k19 gold badges162 silver badges145 bronze badges asked Jul 5, 2017 at 6:54 Ankit PrakashAnkit Prakash 851 gold badge1 silver badge5 bronze badges 1
  • Try this ReactDOM.render(<StoryBox />,target) - notice closing the ponent off – StudioTime Commented Jul 5, 2017 at 7:00
Add a ment  | 

4 Answers 4

Reset to default 9

Do these changes:

1. Include babel standalone script to transform your jsx, put the cdn links in the head part, script:

<script src="https://cdnjs.cloudflare./ajax/libs/babel-standalone/6.24.0/babel.js"></script>

2. Instead of storyBox use StoryBox (capital S), check this answer for reason.

3. You forgot to close, here: <storyBox>, use this: <StoryBox />.

4. Instead of Div use div.

Check the working snippet:

<!DOCTYPE html>
<html>
   <head>
      <title>My First App</title>
      <script src="https://cdn.jsdelivr/react/0.14.0-rc1/react.js"></script>
      <script src="https://cdn.jsdelivr/react/0.14.0-rc1/react-dom.js"></script>
      <script src="https://cdnjs.cloudflare./ajax/libs/babel-standalone/6.24.0/babel.js"></script>
   </head>

   <body>

      <div id="react-app"></div>
      <script type="text/jsx">

         class StoryBox extends React.Component{
            render(){
               return(<div> Hello World </div> );
            }
         }

        var target= document.getElementById('react-app')
        ReactDOM.render(<StoryBox/>,target)

      </script>

  </body>
</html>

You need to add babel as well, to transform your jsx into es5. Here is the sample code. NOTE: your cdn for react was throwing error so I have used other cdn.

<html>
  <head>
    <meta charset="UTF-8" />
    <title>Hello World</title>
    <script src="https://unpkg./react@latest/dist/react.js"></script>
    <script src="https://unpkg./react-dom@latest/dist/react-dom.js"></script>
    <script src="https://unpkg./[email protected]/babel.min.js"></script>
  </head>
  <body>
    <div id="root"></div>
    <script type="text/babel">

      ReactDOM.render(
        <h1>Hello, world!</h1>,
        document.getElementById('root')
      );

    </script>
  </body>
</html>

P.S. If you want to try react using npm packages here is a simple github repository to start with.

You need to include a JSXTransformer in order to be able to execute raw JSX. Try running the code below:

<div id="react-app">
</div>

<script src="https://cdn.jsdelivr/react/0.14.0-rc1/react.js"></script>
<script src="https://cdn.jsdelivr/react/0.14.0-rc1/react-dom.js"></script>
<script src="https://cdnjs.cloudflare./ajax/libs/react/0.13.3/JSXTransformer.js"></script>

<script type="text/jsx">
  class StoryBox extends React.Component{
    render(){
      return(<div> Hello World </div> );
    }
  }
  ReactDOM.render(<StoryBox />, document.getElementById('react-app'))
</script>

You need to add JSX self-closing tag /> - when there is no children.

replace this line:

ReactDOM.render(<StoryBox>,target)

to

ReactDOM.render(<StoryBox />,target)

See working code:

class StoryBox extends React.Component{
        render(){
            return(<div> Hello World </div>);
        }
    }
var target= document.getElementById('react-app')
ReactDOM.render(<StoryBox />,target)
<script src="https://cdnjs.cloudflare./ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare./ajax/libs/react/15.1.0/react-dom.min.js"></script>


<div id="react-app"></div>

发布评论

评论列表(0)

  1. 暂无评论