javascript - React.renderComponent 不是函数

标签 javascript node.js reactjs babeljs react-dom

我已经阅读了一些关于 ReactJs 的初学者文章。我阅读的文章仅显示代码片段。我的第一个组件有问题:

完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react-dom.js"></script>
    <script src="https://cdnjs.cloudflare.com/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>

当我打开页面时,我看到 embedded:11 Uncaught TypeError: React.renderComponent is not a function

谁能给我指出正确的方向?

我也试过这个,但没有成功:

<!DOCTYPE html>
<html lang="en">
<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react.js"></script>
<!--    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react-dom.js"></script>
    <script src="https://cdnjs.cloudflare.com/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>

最佳答案

你的第一个例子的问题是 React.renderComponent 不是一个函数,你需要使用 ReactDOM.render 来代替。你现在应该节省很多精力,只需使用 create-react-app并使用这个应用程序。它消除了使 React 快速使用所需的工具的所有痛苦(webpack 热模块重新加载)。与您需要通过任何其他途径设置的普通工具相比,它非常简单,并且是由 React 的开发人员制作的。我可以通过您正在使用的 React 版本号判断,您正在使用的教程非常很旧,在 Facebook 发布 create-react-app 之前很久,当时事情变得更加困难。

如果你打算内联处理它,请在头脑中使用它 -

<script type="text/javascript" src="https://cdnjs.cloudflare.com/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.com/ajax/libs/react/15.3.2/react-dom.js" integrity="sha256-M5lc1yUhpXlm2VZjGk4aoFwqR9H1OJ0p5MR5xpipulk=" crossorigin="anonymous"></script>

React 15 上的完整工作示例 -

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <script type="text/javascript" src="https://cdnjs.cloudflare.com/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.com/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>

关于javascript - React.renderComponent 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40133476/

相关文章:

javascript - jsgrid 入门示例不起作用

node.js - 如何渲染 EJS View 并在路由内使用 Controller ?

javascript - 从 php 文件运行命令行程序

reactjs - 我在哪里可以找到 CRA 中的 .eslintrc?

javascript - 神秘的for循环迭代

javascript - 将从 JSON 解析的对象绑定(bind)到类

node.js - Mongoose 上的字符串+自动增量数

javascript - React Native setState 用空对象更新数组

javascript - fatal error : Reached heap limit Allocation failed - JavaScript heap out of memory

javascript - jQuery 一次加载 10 个项目