[React Bootstrap] Breadcrumb を表示してみる | 心を無にして始める React

今回は、Breadcrumb コンポーネントを表示します。
Breadcrumb コンポーネントは、ページのナビゲーションヘルパーです。ページを階層化して、現在のページの位置を示せます。
見慣れない単語ですが、いわゆる パンくずリスト です。

準備
まだ components フォルダがなければ作ります。
src を右クリックして New Folder 。

components と入力してフォルダを作ります。

今回は、components フォルダに Breadcrumb のコンポーネントを作って、表示してみます。
公式のドキュメントはここ。
https://react-bootstrap.github.io/components/breadcrumb/
Breadcrumb コンポーネントをつくる
component フォルダに Breadcrumb.js を作ります。
Breadcrumb.js を心を無にして編集してみます。 
import React from 'react';
import { Breadcrumb } from 'react-bootstrap';
/** @param {{ items: { children: React.ReactNode, href?: string }[] }} props */
function Breadcrumbs(props) {
  const {
    items,
    ...otherProps
  } = props;
  return (
    <Breadcrumb {...otherProps}>
      {
        items.map((item, idx) => {
          const attr = (idx === items.length - 1)
            ? {
              active: true,
            }
            : {
              href: item.href || '#'
            };
          return (
            <Breadcrumb.Item key={idx} {...attr}>
              {item.children}
            </Breadcrumb.Item>
          );
        })
      }
    </Breadcrumb>
  )
}
export default Breadcrumbs;プロジェクトでは、コンポーネントを統一したデザインで利用することが多いです。
そのため、(React Bootstrap のコンポーネントをその場その場でカスタマイズしながら使うよりも、)プロジェクトでコンポーネントにしたものを使うほうが、変更をお手軽に漏れなくできることが多いです。
Breadcrumb コンポーネントを表示する
それでは、 App.js を編集して Breadcrumb コンポーネントを表示します。
import './App.css';
import Breadcrumbs from './components/Breadcrumbs';
function App() {
  const items = [
    {
      children: 'ホーム',
      href: 'https://neko-note.org/',
    },
    {
      children: 'カテゴリ',
      href: '#',
    },
    {
      children: 'カレント',
    }
  ];
  return (
    <div className="m-5">
      <Breadcrumbs items={items} />
    </div>
  );
}
export default App;
画面を確認してみます。

はい、できました。
セパレータを変える
パンくずリスト(Breadcrumb) のセパレータは CSS に書かれています。
bootstrap の CSS は変更せずに、 App.css を編集します。
.breadcrumb-item + .breadcrumb-item::before {
  content: ">" !important;
}こんな感じです。

画面を確認してみます。

はい、できました。
















