MENU

‘React’ must be in scope when using JSXeslintreact/react-in-jsx-scopeの解決方法

「React’ must be in scope when using JSXeslintreact/react-in-jsx-scope」というエラーは、JSXを使用する際にReactがスコープ内にないことを示しています。これは、JSXを変換するためにReactの関数が必要であることに関連しています。このエラーを解決するには、いくつかの方法があります。

目次

方法1: Reactをインポートする

JSXを使用するファイルの先頭で明示的にReactをインポートします。これが最も一般的な解決策です。

方法2: React 17以降を使用している場合

React 17以降では、新しいJSX変換を使用している場合、Reactをインポートする必要はありません。この新しいJSX変換は、BabelやTypeScriptなどのコンパイラの設定で有効にする必要があります。

Babelを使用している場合、@babel/preset-reactの設定でruntime: 'automatic'を指定することにより、新しいJSX変換を有効にできます。

TypeScriptを使用している場合は、tsconfig.jsonjsx: 'react-jsx'を指定します。

方法3: ESLintの設定を変更する

もしReactを明示的にインポートしたくない場合(React 17以降を使用している場合)、ESLintの設定を変更してこのルールを無効にすることもできます。

.eslintrc ファイル(またはESLintの設定が記述されている場所)で、以下のようにルールを無効にします。

これらの方法のいずれかを適用することで、上記のエラーを解決できます。ただし、どの方法を選択するかは、プロジェクトの設定や使用しているReactのバージョンによって異なります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次