簡體   English   中英

我的基本ReactJS應用程序有什么問題?

[英]What is wrong with my basic ReactJS app?

我正在嘗試使用本教程構建一個基本的ReactJS應用程序

當前,我有一個空白頁,當我鍵入MessageBox ,我的組件的名稱,我收到以下錯誤。

在此處輸入圖片說明

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="description" content="Playing with ReactJS">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Playing with ReactJS</title>
</head>
<body>

    <!-- container node -->
    <div id="app"></div>

    <script src="bower_components/react/react.js"></script>
    <script src="bower_components/react/react-dom.js"></script>
    <script type="text/jsx">
        /** @jsx React.DOM */
        var MessageBox = React.createClass({
            render: function() {
                return (
                    <h1>Hello, World</h1>
                );
            }  
        });

        React.renderComponent(
            <MessageBox/>,
            document.getElementById('app'),
            function () {
                console.log('after render');
            }
        )
    </script>

</body>
</html>

 /**
  * React v0.14.7
  */

瀏覽器不了解JSX。 您需要以某種方式將其轉換為JavaScript才能開始工作。 您可以通過將代碼移動到單獨的.jsx文件並設置諸如Babel的工具進行編譯來實現,也可以使用JSXTransformer在瀏覽器中運行轉換(JSX-> JS)。 但是, 不推薦使用JSXTransformer ,它可能不支持JSX語法的最新添加(例如,無值屬性 )。

renderComponent函數已被棄用。

您可以使用ReactDOM.render()代替React.renderComponent()

您的新文件應如下所示:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="description" content="Playing with ReactJS">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Playing with ReactJS</title>
</head>
<body>

    <!-- container node -->
    <div id="app"></div>

    <script src="bower_components/react/react.js"></script>
    <script src="bower_components/react/react-dom.js"></script>
    <script type="text/jsx">
        /** @jsx React.DOM */
        var MessageBox = React.createClass({
            render: function() {
                return (
                    <h1>Hello, World</h1>
                );
            }  
        });

        ReactDOM.render(
            <MessageBox/>,
            document.getElementById('app'),
            function () {
                console.log('after render');
            }
        );
    </script>

</body>
</html>

另外-將函數提取到單獨的js文件中。

這是一個很好的(最新的)教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM