お世話になります。
現在react.jsの練習ページを作成しております。
**概要
**「index.hmtl」で読み込んでいる、「index.js」というファイルの中で
また別ファイル「App.jsx」のなかの「App component」をimportし、
hydrateでid、appのタグに記述をしようとしています。
・index.html
・index.js
があり、同階層に
・componentsフォルダ、その配下にApp.jsxファイルがあります。
このファイルでindex.htmlを確認したところ、
ローカル環境では正常に読み込み、動作しているのですが
Xサーバー(公開サーバー)にアップロードすると、
index.htmlを開いたときに下記のエラーが要素を検証画面のコンソールに表示され、reactのコンポーネント部分が表示されません。
エラー内容
js
1SyntaxError: expected expression, got '<' 2index.js:6:8
ーーーーーーーーー
具体的なコードの内容です。
HTMLファイルでindex.jsを読み込んでいます。
html
1 2<!DOCTYPE html> 3<html lang="ja"> 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0"> 7 <meta http-equiv="X-UA-Compatible" content="ie=edge" /> 8 <script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script> 9 <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script> 10 <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> 11 <title>test app</title> 12 </head> 13 <body> 14 <!--以下、appのidにreactコンポーネントを読み込む--> 15 <div id="app" class="main-content"></div> 16 <!--以下scriptでindex.jsを読み込む--> 17 <script type="module" src="./index.js"></script> 18 </body> 19 </html> 20
続いてindex.jsです。
ブラウザのコンソールのエラーはこのファイルの6行目、<App />を指し示しています。
javascript
1import React from "react"; 2import { hydrate } from "react-dom"; 3import App from "./components/App"; 4 5hydrate( 6 <App />, **エラーで見る限り、この行が原因のようです。** 7 document.getElementById("app") 8 ); 9
参考ですが、上のファイルでimportしているAppのcomponentがあるApp.jsxファイルです。
(index.js側でエラーが出ているようですので、詳細コードは省略します。)
javascript
1import React from "react"; 2 3export default class App extends React.Component { 4 constructor(props) { 5 super(props); 6 7 this.state = { 8 略 9 }; 10 } 11
上記の状態で、ローカル環境ではindex.jsファイルでappコンポーネントを読み込み、
正常にreactの記述内容が動作するのですが
本番環境に公開すると、なぜか前述のエラーとなります。
[試したこと]
・index.jsのhydrateを、reactdom.renderに変更して試してみる
・index.jsの「import App from "./components/App";」を、Appを{}で囲んで見る(export defaultしているので関係ないとは思いますが念のため)
原因がわからず、書き方を変えて見る程度しか試せていませんが、
なぜ本番でのみうまくいかないのか、考えられる点があれば、教えていただけますでしょうか。
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー