【React】エラー解決法 ’React’ must be in scope when using JSX react/react-in-jsx-scope

React

以下エラーの解決法をまとめました。

Failed to compile
src\App.js
  Line 6:5:    'React' must be in scope when using JSX  react/react-in-jsx-scope
  Line 7:7:    'React' must be in scope when using JSX  react/react-in-jsx-scope
  Line 8:9:    'React' must be in scope when using JSX  react/react-in-jsx-scope
  Line 9:9:    'React' must be in scope when using JSX  react/react-in-jsx-scope
  Line 10:16:  'React' must be in scope when using JSX  react/react-in-jsx-scope
  Line 12:9:   'React' must be in scope when using JSX  react/react-in-jsx-scope

Search for the keywords to learn more about each error.
This error occurred during the build time and cannot be dismissed.

発生状況

以下コマンドを実行してサーバー起動

$ npm start

何をいじったことによるエラーなのかがわからず、、、

一旦、普通にnpx create-react-appで立ち上げて、比べてみることに。

Amplify SNS Workshop

App.jsとindex.jsを同じコードに書き換えても、エラーが消えず。

普通に立ち上げた方ではちゃんとReactの画面が表示された。

オリジナルのコードはこちら

import logo from './logo.svg';
import './App.css';

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.js</code> and save to reload.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Learn React
        </a>
      </header>
    </div>
  );
}

export default App;

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

解決策

App.jsでReactのimportが必要だった。

import React from 'react';
import logo from './logo.svg';
import './App.css';

function App() {
  省略

試したこと

Reactのimportが違うという記事が多くあったため、記述を以下に変更してみるもエラー解消せず。

import React, { Component }  from 'react';

コメント

タイトルとURLをコピーしました