# Fragment

Componentを作成する際に、以下のようにpタグとnavタグを同じ1番上の階層にて返却するようにすると、エラーになるかと思います。理由として、返却するhtmlは1つのタグに括られている必要があるためです。

{% code title="Breadcrumb.tsx" %}

```tsx
export const Breadcrumb = () => {
  return (
    <p>パンくずリスト</p>
    <nav aria-label="breadcrumb">
     ...
    </nav>
  );
};
```

{% endcode %}

以下のようにdivタグでくくるのも良いかと思いますが、余計なタグが増えてしまったり、cssをうまく当てることができないことが想定されます。

{% code title="Breadcrumb.tsx" %}

```tsx
export const Breadcrumb = () => {
  return (
    <div>
      <p>パンくずリスト</p>
      <nav aria-label="breadcrumb">
       ...
      </nav>
    </div>
  );
};
```

{% endcode %}

そういった場合に、`Fragment`を使用することで、実際のHTML上はタグを生成せず、tsx上で、一つのタグに収めることができます。

<pre class="language-tsx" data-title="Breadcrumb.tsx◎"><code class="lang-tsx">import { Fragment } from "react"; 

export const Breadcrumb = () => {
  return (
<strong>    &#x3C;Fragment>
</strong><strong>      &#x3C;p>パンくずリスト&#x3C;/p>
</strong>      &#x3C;nav aria-label="breadcrumb">
       ...
      &#x3C;/nav>
<strong>    &#x3C;/Fragment>
</strong>  );
};
</code></pre>

また`Fragment`のキーワードは省略することができ、`<></>のように記述することができます。`

<pre class="language-tsx" data-title="Breadcrumb.tsx◎"><code class="lang-tsx">export const Breadcrumb = () => {
  return (
<strong>    &#x3C;>
</strong>      &#x3C;p>パンくずリスト&#x3C;/p>
      &#x3C;nav aria-label="breadcrumb">
       ...
      &#x3C;/nav>
<strong>    &#x3C;/>
</strong>  );
};
</code></pre>
