React.jsでAdjacent JSX elements must be wrapped in an enclosing tagのエラーが発生した時の解決方法
投稿日 2024年08月28日 更新日 2024年08月28日
React
エラー解決
React.jsでAdjacent JSX elements must be wrapped in an enclosing tagのエラーが発生した時の解決方法
React.jsを使用していると、「Adjacent JSX elements must be wrapped in an enclosing tag」というエラーに遭遇することがあります。このエラーは、JSX内で複数の要素を直接並べて記述した際に発生します。本記事では、このエラーの原因と解決方法について詳しく解説します。
エラーの原因
このエラーは、JSXの基本ルールに違反している場合に発生します。React.jsでは、コンポーネントのレンダリング結果は単一のルート要素でなければなりません。つまり、複数の要素を並列して記述することはできません。
例えば、以下のようなコードはエラーを引き起こします:
function MyComponent() {
return (
<h1>Hello</h1>
<p>World</p>
);
}
解決方法
このエラーを解決するには、以下のいくつかの方法があります:
1. div要素で囲む
最も一般的な解決方法は、複数の要素を`div`タグで囲むことです:
function MyComponent() {
return (
<div>
<h1>Hello</h1>
<p>World</p>
</div>
);
}
2. Reactフラグメントを使用する
不要なDOM要素を追加したくない場合は、Reactフラグメントを使用できます:
import React from 'react';
function MyComponent() {
return (
<React.Fragment>
<h1>Hello</h1>
<p>World</p>
</React.Fragment>
);
}
または、短縮構文を使用することもできます:
function MyComponent() {
return (
<>
<h1>Hello</h1>
<p>World</p>
</>
);
}
3. 配列を返す
配列を返すことで、複数の要素を並列して記述することも可能です:
function MyComponent() {
return [
<h1 key="1">Hello</h1>,
<p key="2">World</p>
];
}
注意:この方法を使用する場合、各要素に一意の`key`プロパティを設定する必要があります。
まとめ
「Adjacent JSX elements must be wrapped in an enclosing tag」エラーは、JSXの基本ルールに違反した際に発生します。このエラーを解決するには、複数の要素を単一の親要素で囲むか、Reactフラグメントを使用するか、または配列を返す方法があります。適切な方法を選択することで、クリーンで効率的なReactコードを書くことができます。
これらの解決方法を理解し実践することで、React.jsでの開発がよりスムーズになるでしょう。エラーメッセージを適切に解釈し、迅速に対応することは、効率的な開発の鍵となります。
関連記事

新着記事
5
6
7
関連記事
5
6
7


60秒で完了