2017-11-30 23 views
-1

私はいくつかのオンラインチュートリアルからReactを学んだ後、デモプロジェクトを構築し始めました。 下記のコード行をReactComponentから考えてください。ReactDOM.render()query

ReactDOM.render(<Home/>, document.getElementById('container')); 

これは、ターゲットDOM要素コンテナで反応成分をホームをレンダリングします。オンラインのすべてのチュートリアルでは、これがindex.htmlファイルにレンダリングされています。コードはどのようにしてDOM要素を見つけるためのHTML(ドキュメント)ファイルであるかを知っていますコンテナ以下は、私が得ているエラーのスクリーンショットです。以下は

enter image description here

足場からデフォルトの一つであり、私のindex.htmlです。

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 
    <meta name="theme-color" content="#000000"> 
    <!-- 
     manifest.json provides metadata used when your web app is added to the 
     homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/ 
    --> 
    <link rel="manifest" href="%PUBLIC_URL%/manifest.json"> 
    <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico"> 
    <!-- 
     Notice the use of %PUBLIC_URL% in the tags above. 
     It will be replaced with the URL of the `public` folder during the build. 
     Only files inside the `public` folder can be referenced from the HTML. 

     Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will 
     work correctly both with client-side routing and a non-root public URL. 
     Learn how to configure a non-root public URL by running `npm run build`. 
    --> 
    <title>React App</title> 
    </head> 
    <body> 
    <noscript> 
     You need to enable JavaScript to run this app. 
    </noscript> 
    <div id="root"></div> 
    <!-- 
     This HTML file is a template. 
     If you open it directly in the browser, you will see an empty page. 

     You can add webfonts, meta tags, or analytics to this file. 
     The build step will place the bundled scripts into the <body> tag. 

     To begin the development, run `npm start` or `yarn start`. 
     To create a production bundle, use `npm run build` or `yarn build`. 
    --> 
    </body> 
</html> 
+1

'index.html'ファイルを表示します。 –

+0

あなたの 'index.js'ファイルの中のどの要素も' 'container''に等しい' id'を持っていません。したがって、「ターゲットコンテナはDOM要素ではありません」というエラーです。 –

+1

あなたの 'ReactDOM'ステートメントをあなたの'#root'' div 'を指すように変更することです: 'ReactDOM.render(、document.getElementById(' root '))' –

答えて

1

Reactでは、すべてのJavaScriptとして、HTMLファイル(つまり、HTMLファイルが最初に来る)を介してファイルにロードされます。 JavaScriptは通常<script>タグでインポートされます。それはになりますブラウザでそのHTMLファイルを、現在開いているので、

、あなたがブラウザで開くHTMLファイル、このような何かを持っている必要があります。

<!DOCTYPE html> 
<head> 
    <script src="./src/Home.js"></script> 
<body> 
    <div id="container"></div> 

オープニングと仮定すると、ことJSのパスは正しく、正常に動作するはずです。

+0

確かに私はいくつか質問があります。 1.すべてのhtmlファイルにスクリプト名を指定する必要があります。 2.先ほどのチュートリアルでは、index.htmlにコンパイルされた.jsファイルパスが指定されています。私はそれをする必要がありますか? –

関連する問題