スポンサーリンク

Reactアプリで簡単に通知を実装!React-Toastifyの使い方ガイド

JavaScript
スポンサーリンク
本ページにはプロモーションが含まれています。

react-toastify は、React アプリケーションで簡単に通知(トースト)を表示するためのライブラリです。使いやすく、カスタマイズ性も高いため、多くの開発者に利用されています。以下に、react-toastify の基本的な使い方をステップバイステップで説明します。

スポンサーリンク

1. インストール

まず、プロジェクトに react-toastify をインストールします。npm または yarn を使用できます。

# npm を使用する場合
npm install react-toastify

# yarn を使用する場合
yarn add react-toastify

2. 基本的な設定

インストールが完了したら、アプリケーションで react-toastify を設定します。一般的には、アプリケーションのエントリーポイント(例: App.js)で設定します。

例: App.js

import React from 'react';
import { ToastContainer, toast } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';

function App() {
  const notify = () => toast("デフォルトの通知!");

  return (
    <div>
      <h1>react-toastify の使い方</h1>
      <button onClick={notify}>通知を表示</button>
      <ToastContainer />
    </div>
  );
}

export default App;

説明

  1. インポート
    • ToastContainer: 通知を表示するコンテナコンポーネント。
    • toast: 通知をトリガーする関数。
    • CSS ファイルのインポート: デフォルトのスタイルを適用します。
  2. 通知を表示する関数
    • notify 関数内で toast を呼び出し、通知メッセージを指定します。
  3. コンポーネントのレンダリング
    • ボタンをクリックすると notify 関数が実行され、通知が表示されます。
    • <ToastContainer /> はアプリケーション内のどこにでも配置できますが、通常はアプリケーションのルートに配置します。

3. 通知の種類

react-toastify では、さまざまな種類の通知を簡単に表示できます。

成功通知

toast.success("成功しました!");

エラー通知

toast.error("エラーが発生しました!");

警告通知

toast.warn("警告メッセージ");

情報通知

toast.info("情報メッセージ");

カスタム通知

カスタムコンポーネントを使用して通知をカスタマイズすることもできます。

const CustomToast = ({ closeToast }) => (
  <div>
    <h4>カスタム通知</h4>
    <button onClick={closeToast}>閉じる</button>
  </div>
);

// 使用例
toast(<CustomToast />);

4. オプション設定

通知にはさまざまなオプションを設定できます。ToastContainertoast 関数にプロパティを追加することでカスタマイズが可能です。

ToastContainer の主なオプション

  • position: 通知の表示位置。例: top-right, top-center, bottom-left など。
  • autoClose: 自動で閉じるまでの時間(ミリ秒)。false にすると自動閉鎖しません。
  • hideProgressBar: プログレスバーを非表示にするか。
  • newestOnTop: 新しい通知を上に表示するか。
  • closeOnClick: クリックで通知を閉じるか。
  • pauseOnHover: ホバー時にタイマーを一時停止するか。

例: カスタマイズされた ToastContainer

<ToastContainer
  position="top-right"
  autoClose={5000}
  hideProgressBar={false}
  newestOnTop={false}
  closeOnClick
  rtl={false}
  pauseOnFocusLoss
  draggable
  pauseOnHover
/>

5. グローバル設定

アプリケーション全体で共通の設定を行いたい場合、ToastContainer を一度だけ設定し、必要に応じて toast 関数を使用します。

例: index.js に配置

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import { ToastContainer } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';

ReactDOM.render(
  <React.StrictMode>
    <App />
    <ToastContainer 
      position="bottom-left"
      autoClose={3000}
      hideProgressBar
      newestOnTop
      closeOnClick
      rtl={false}
      pauseOnFocusLoss
      draggable
      pauseOnHover
    />
  </React.StrictMode>,
  document.getElementById('root')
);

6. アニメーションとテーマ

react-toastify では、通知のアニメーションやテーマをカスタマイズできます。

アニメーションの変更

デフォルトのアニメーション以外にも、さまざまなアニメーションを選択できます。例えば、Slide, Zoom, Flip, Bounce など。

import { Slide } from 'react-toastify';

// 使用例
<ToastContainer transition={Slide} />

テーマの変更

ライトテーマとダークテーマが用意されています。

<ToastContainer theme="dark" />

7. TypeScript を使用している場合

TypeScript プロジェクトでも react-toastify は問題なく使用できます。型定義も提供されているため、型エラーを気にする必要はありません。

例: TypeScript での使用

import React from 'react';
import { ToastContainer, toast, ToastOptions } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';

const App: React.FC = () => {
  const notify = () => {
    const options: ToastOptions = {
      position: "top-center",
      autoClose: 3000,
      hideProgressBar: false,
      closeOnClick: true,
      pauseOnHover: true,
      draggable: true,
      progress: undefined,
      theme: "colored",
    };
    toast.success("成功しました!", options);
  };

  return (
    <div>
      <button onClick={notify}>通知を表示</button>
      <ToastContainer />
    </div>
  );
};

export default App;

8. まとめ

react-toastify を使用することで、React アプリケーションに簡単かつ効果的に通知機能を追加できます。基本的な設定から高度なカスタマイズまで、多くのオプションが用意されているため、プロジェクトのニーズに合わせて柔軟に対応できます。公式ドキュメントも充実しているので、さらに詳細な情報や最新の機能については react-toastify の公式サイト を参照してください。

タイトルとURLをコピーしました