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

今回は、Tooltip コンポーネントを表示します。

準備

まだ components フォルダがなければ作ります。

src を右クリックして New Folder

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

今回は、components フォルダに Tooltip のコンポーネントを作って、表示してみます。

公式のドキュメントはここ。

https://react-bootstrap.github.io/components/overlays/#tooltips

Tooltip コンポーネントをつくる

component フォルダに Tooltip.js を作ります。

Tooltip.js を心を無にして編集してみます。

import React from 'react';
import { Tooltip as BootstrapTooltip } from 'react-bootstrap';

const Tooltip = React.forwardRef(({
  children,
  ...otherProps
}, ref) => {

  return (
    <BootstrapTooltip ref={ref} {...otherProps}>
      {children}
    </BootstrapTooltip>
  )
})

export default Tooltip;

プロジェクトでは、コンポーネントを統一したデザインで利用することが多いです。

そのため、(React Bootstrap のコンポーネントをその場その場でカスタマイズしながら使うよりも、)プロジェクトでコンポーネントにしたものを使うほうが、変更をお手軽に漏れなくできることが多いです。

Tooltip コンポーネントを表示する

それでは、 App.js を編集して Tooltip コンポーネントを表示します。

import React from 'react';
import './App.css';

import OverlayTrigger from './components/OverlayTrigger';
import Tooltip from './components/Tooltip';

function App() {
  return (
    <>
      <div className="p-5 bg-dark">
        <div className="p-5 d-flex flex-column justify-content-center align-items-center">
          <OverlayTrigger
            placement="right"
            trigger={["hover"]}
            delay={{ show: 250, hide: 400 }}
            overlay={
              <Tooltip>
                right
              </Tooltip>
            }
          >
            <div className="p-5 bg-light d-flex justify-content-center align-items-center rounded">
              <h1>BASE</h1>
            </div>
          </OverlayTrigger>
        </div>
      </div>
    </>
  );
}

export default App;

画面を確認してみます。

はい、できました。