反应错误"未捕获的TypeError:type.toUpperCase不是函数"在一个你好世界的应用程序

时间:2015-07-23 21:36:34

标签: javascript reactjs

我已经开始涉及reactjs了,并且遵循教程并且我在标题上得到了错误,只是运行了一个非常简单的hello world应用程序。以下是我的单页代码:

   <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
        <script src="https://fb.me/react-0.13.3.js"></script>
        <script src="https://fb.me/JSXTransformer-0.13.3.js"></script>
    </head>
    <body>
      <script type="text/jsx">
        // Define a class
        var HelloWorld = React.createClass({
          render: function() {
            return <div>
              Hello World!
            </div>
          }
        });

        // create element with this class
        var element = React.createElement({HelloWorld});

        // Render this class and  place it in the body tag
        React.render(element, document.body);
      </script>
    </body>

    </html>

非常感谢任何提示或解决方案。

3 个答案:

答案 0 :(得分:6)

在我的情况下,我创建了一个React元素,但是我忘了将它导出到文件的末尾:

var React = require('react');

var About = React.createClass({
    render: function(){
        return (
            <div>
                <h1>The about page</h1>
            </div>
        );
    }
});
export {
    About, About as default
};

答案 1 :(得分:5)

以下行中有错误:

var element = React.createElement({HelloWorld});

应该是:

var element = React.createElement(HelloWorld);

注意缺少花括号。

答案 2 :(得分:1)

嘿,渲染元素的正确方法是

React.render(<HelloWorld />, document.body);

您不需要先创建元素。总的来说,你的代码看起来应该是

var HelloWorld = React.createClass({
    render: function () {
        return <div > Hello World! < /div>
    }
});

React.render( < HelloWorld / > , document.body);