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での開発がよりスムーズになるでしょう。エラーメッセージを適切に解釈し、迅速に対応することは、効率的な開発の鍵となります。
Resumy AI監修者
監修者: RESUMY.AI編集部

ヨーロッパのテックハブであるロンドンにて、シニアデベロッパーとしてチームを率いた後、オンライン教育プラットフォームUdemyでモダン技術に関する講義を配信する「Daiz Academy」を設立。現在はAIテクノロジー企業 Chott, Inc.を運営しています。

監修者: RESUMY.AI編集部
Resumy AI監修者

ヨーロッパのテックハブであるロンドンにて、シニアデベロッパーとしてチームを率いた後、オンライン教育プラットフォームUdemyでモダン技術に関する講義を配信する「Daiz Academy」を設立。現在はAIテクノロジー企業 Chott, Inc.を運営しています。

AI職務経歴書作成サービス RESUMY.AIAI職務経歴書作成サービス RESUMY.AI
60秒で完了