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

javascript - React.renderComponent is not a function - Stack Overflow

programmeradmin3浏览0评论

I have read some articles for beginners about ReactJs. The article I read showed only code fragments. I'm having trouble with my first ponent:

full code:

<!DOCTYPE html>
<html lang="en">
<head>
    <script src=".14.0/react.js"></script>
    <script src=".14.0/react-dom.js"></script>
    <script src=".6.15/browser.js"></script>
    <meta charset="UTF-8">
    <title>HELLO WORLD</title>
</head>
<body>
<div id="content"></div>


<script type="text/babel">
    var HelloWorld = React.createClass({
        render: function () {
            return React.DOM.h1("hello world!!");
        }
    });

    React.renderComponent(
        HelloWorld,
        document.getElementById("content")
    );
</script>
</body>
</html>

When I open the page I see embedded:11 Uncaught TypeError: React.renderComponent is not a function

Can anyone please point me in the right direction?

I've also tried this with no luck:

<!DOCTYPE html>
<html lang="en">
<head>
    <script src=".14.0/react.js"></script>
<!--    <script src=".14.0/react-dom.js"></script>
    <script src=".6.15/browser.js"></script>-->
    <meta charset="UTF-8">
    <title>HELLO WORLD</title>
</head>
<body>
<div id="content"></div>


<script type="text/babel">
    var HelloWorld = React.createClass({
        render: function() {
            return React.createElement("h1", null, "Hello world!!");
        }
    });

    ReactDOM.render(React.createElement(HelloWorld, null), document.getElementById("content"));
</script>
</body>
</html>

I have read some articles for beginners about ReactJs. The article I read showed only code fragments. I'm having trouble with my first ponent:

full code:

<!DOCTYPE html>
<html lang="en">
<head>
    <script src="https://cdnjs.cloudflare./ajax/libs/react/0.14.0/react.js"></script>
    <script src="https://cdnjs.cloudflare./ajax/libs/react/0.14.0/react-dom.js"></script>
    <script src="https://cdnjs.cloudflare./ajax/libs/babel-core/5.6.15/browser.js"></script>
    <meta charset="UTF-8">
    <title>HELLO WORLD</title>
</head>
<body>
<div id="content"></div>


<script type="text/babel">
    var HelloWorld = React.createClass({
        render: function () {
            return React.DOM.h1("hello world!!");
        }
    });

    React.renderComponent(
        HelloWorld,
        document.getElementById("content")
    );
</script>
</body>
</html>

When I open the page I see embedded:11 Uncaught TypeError: React.renderComponent is not a function

Can anyone please point me in the right direction?

I've also tried this with no luck:

<!DOCTYPE html>
<html lang="en">
<head>
    <script src="https://cdnjs.cloudflare./ajax/libs/react/0.14.0/react.js"></script>
<!--    <script src="https://cdnjs.cloudflare./ajax/libs/react/0.14.0/react-dom.js"></script>
    <script src="https://cdnjs.cloudflare./ajax/libs/babel-core/5.6.15/browser.js"></script>-->
    <meta charset="UTF-8">
    <title>HELLO WORLD</title>
</head>
<body>
<div id="content"></div>


<script type="text/babel">
    var HelloWorld = React.createClass({
        render: function() {
            return React.createElement("h1", null, "Hello world!!");
        }
    });

    ReactDOM.render(React.createElement(HelloWorld, null), document.getElementById("content"));
</script>
</body>
</html>
Share Improve this question edited Dec 19, 2016 at 19:19 cchamberlain 18k7 gold badges60 silver badges72 bronze badges asked Oct 19, 2016 at 13:57 gstackoverflowgstackoverflow 36.6k138 gold badges419 silver badges785 bronze badges 0
Add a ment  | 

2 Answers 2

Reset to default 2

The problem with your first example is that React.renderComponent is not a function, you need to use ReactDOM.render instead. You should save yourself a lot of effort now and just use create-react-app and use this application. It takes all of the pain out of the tooling that you will need to make React fast to use (webpack hot module reloading). It is extremely simple pared to the average tooling you will need to setup taking any other route and is made by the people that make React. I can tell by the version number of React that you are using, the tutorial you are going of of is very old, a very longtime before Facebook released create-react-app when things were more difficult.

If you are going to go about it inline, use this in your head -

<script type="text/javascript" src="https://cdnjs.cloudflare./ajax/libs/react/15.3.2/react.min.js" integrity="sha256-cLWs9L+cjZg8CjGHMpJqUgKKouPlmoMP/0wIdPtaPGs=" crossorigin="anonymous"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare./ajax/libs/react/15.3.2/react-dom.js" integrity="sha256-M5lc1yUhpXlm2VZjGk4aoFwqR9H1OJ0p5MR5xpipulk=" crossorigin="anonymous"></script>

Full working example on React 15 -

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <script type="text/javascript" src="https://cdnjs.cloudflare./ajax/libs/react/15.3.2/react.min.js" integrity="sha256-cLWs9L+cjZg8CjGHMpJqUgKKouPlmoMP/0wIdPtaPGs=" crossorigin="anonymous"></script>
  <script type="text/javascript" src="https://cdnjs.cloudflare./ajax/libs/react/15.3.2/react-dom.js" integrity="sha256-M5lc1yUhpXlm2VZjGk4aoFwqR9H1OJ0p5MR5xpipulk=" crossorigin="anonymous"></script>
  <title>HELLO WORLD</title>
</head>
<body>
  <div id="content"></div>
  <script>
    var HelloWorld = React.createClass({
        render: function() {
            return React.createElement("h1", null, "Hello world!!");
        }
    });
    ReactDOM.render(React.createElement(HelloWorld, null), document.getElementById("content"));
  </script>
</body>
</html>

EDIT: I see that you use babel-core browser.js, which has been deprecated, remove it and use React directly.

Remove script type and replace everything with:

var HelloWorld = React.createClass({
  render: function() {
    return React.createElement("h1", null, "Hello world!!");
  }
});

ReactDOM.render(React.createElement(HelloWorld, null), document.getElementById("content"));

jsbin demo

发布评论

评论列表(0)

  1. 暂无评论