【React】关于React-toastify

这篇文章的目的是什么。

    • Reactの理解とアウトプット、振り返り用

 

    • Reactでよく使われている基本的な技術を言語化できるようする

 

    React-toastifyについて

简而言之

    • React-toastifyとは

 

    • React-toastifyインストール

 

    • React-toastify使用例

 

    【番外】オプションについて

React-toastify 是什么?

エラー.gif

安装React-toastify

使用下述命令进行安装。

npm i -D react-toastify

React-toastify的用法。

读取最顶层(最近的)组件。

通过这样做,可以在所有子组件中使用。

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

<ToastContainer />

记录的例子

只要上述的代码中包含了@tanstack/react-query相关的内容,就不会有问题,因为它是基于API进行实现的。

import { Router } from './Router';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { ToastContainer } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';

const queryClient = new QueryClient({
    defaultOptions: {
        queries: {
            retry: false
        },
        mutations: {
            retry: false
        }
    }
});

export const App = () => {
    return (
        <QueryClientProvider client={queryClient}>
            <Router />
            <ToastContainer 
                closeOnClick
                theme="colored" 
            />
        </QueryClientProvider>
    )
}

请尝试在React-toastify官方文档中查看有关 closeOnClick theme=”colored” 的选项,并进行相应的行为和样式更改。

在子组件中,您可以通过以下方式调用toast。

import { toast } from 'react-toastify';
// 引数に表示したいエラーメッセージを記載
toast.error('更新に失敗しました')

记载的例子

在更新处理失败时,我们使用toast来显示错误消息。

import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
import * as api from '../api/TaskAPI';
import { toast } from 'react-toastify';

export const useTasks = () => {
    return useQuery(['tasks'],async () => api.getTasks())
}

export const useUpdateDoneTask = () => {
    const queryClient = useQueryClient();
    // 第一引数:API
    // 第二引数:コールバックの処理
    return useMutation(api.updateDoneTask, {
        onSuccess: () => {
            // コンポーネントの再描画,引数はkeyとなる文字列
            queryClient.invalidateQueries(['tasks']);
        },
        onError: () => {
            // エラーmessageはreact-toastifyのtoastのerrorメソッドを使用
            // 引数に表示したいエラーmessageを記載
            toast.error('更新に失敗しました');
        }
    });
}

通过这样做,当更新处理失败时,可以显示类似于我之前提供的第一个GIF中的错误消息。

【附加】选项

オプション名説明position文字通りトーストが表示されるポジションを指定します。
top-right, top-left, top-center, bottom-left, bottom-right, bottom-centerから選べる。autoCloseトーストはautoCloseで設定したミリ秒経過時に閉じます。デフォルトでは5,000ミリ秒(5秒)です。
反対にautoCloseの設定を完全に外すことができないので、外したい場合はミリ秒を極端に長く設定する。hideProgressBarautoCloseで設定したミリ秒の経過を、プログレスバーで表示する機能。
デフォルト設定では表示されますが、={false}の部分を削除して、単にhideProgressBarとすると非表示になります。newestOnTop複数のトーストが同時に表示される場合に、トーストを重ねるか否かを選択できます。デフォルトでは重ねず上下に表示されます。closeOnClickトーストをクリックで消せるか否かの設定。デフォルトでは可能です。不可としたい場合は、={false}を追記する。rtlritht to leftの略。トースト内で表示される文字はデフォルトでは左寄せ(rtl={false})、
文字を右寄せにしたい場合は={false}を外す。pauseOnFocusLossフォーカスが外れた(ブラウザの外側をクリックした)場合に、autoCloseで設定したミリ秒の経過を一時停止するオプション。デフォルトは一時停止。draggableトーストをドラッグしながら消すことができます。画面外に押しやるイメージ。pauseOnHoverトーストをホバーすると(マウスが上に重なると)、autoCloseで設定したミリ秒の進行が止まります。themeデフォルトは白い背景で表示されますが、色は変更することが可能です。
ダークモードにする場合はtheme=”dark”とします。
广告
将在 10 秒后关闭
bannerAds