Toast

info

Обновлённая версия компонента Toast с поддержкой управления отдельными тостами, настакивания, кастомного рендера и анимации.

Использование​

Вставьте ToastContainer один раз в дерево приложения, затем вызывайте showToast там, где нужно показать уведомление. На этой странице все интерактивные примеры используют контейнер из первого примера.

Live Editor

Result

По умолчанию повторный вызов showToast заменяет текущий тост. Чтобы показывать несколько уведомлений одновременно, передайте stacking: true. Тосты складываются отдельно для каждой позиции, например top-center и bottom-right. Расстояние между тостами настраивается в пикселях через gap у ToastContainer; по умолчанию оно равно 8.

Live Editor

Result

showToast возвращает ID тоста. Его можно использовать, чтобы закрыть именно это уведомление с помощью hideToast(id). Если передать собственный id, повторный вызов с тем же ID обновит этот тост. При stacking: true и без заданного ID он генерируется библиотекой.

const id = showToast('Загрузка завершена', { stacking: true });
hideToast(id);

Кастомный рендер​

Для отдельного тоста можно передать renderToast. Callback получает опции этого тоста, включая итоговый ID. Текст можно использовать из замыкания:

Live Editor

Result

Анимация​

Задайте CSS keyframes в стилях приложения. Общую анимацию можно передать в ToastContainer через animation, а анимацию отдельного тоста — через showToast.

Live Editor

Result

API​

Свойства ToastContainer​

Свойства showToast​

СвойствоТипПо умолчаниюОписание
stackingbooleanfalseРазрешает показывать несколько тостов одновременно.
idstringАвтоматический при stacking: trueID тоста. Возвращается из showToast; используется в hideToast.
positionToastPositionbottom-centerПозиция тоста. Для каждой позиции создаётся отдельная стопка.
durationnumberInfinityВремя отображения в миллисекундах.
animation{ enter?: CSSProperties['animation']; exit?: CSSProperties['animation'] }Анимация react-hot-toastCSS-анимации появления и скрытия. Настройка в опциях showToast переопределяет значение ToastContainer.
renderToast(options?: Omit<ShowToastPlasmaOptions, 'renderToast'>) => ReactNode—Функция для кастомного рендера тоста.
hasClosebooleantrueПоказывает кнопку закрытия стандартного тоста.
contentLeftReactNode—Контент слева от текста стандартного тоста.
widthCSSProperties['width']autoШирина стандартного тоста.
textColorCSSProperties['color']Из viewЦвет текста стандартного тоста.
view, size, pilledstring, string, booleanИз конфига темыВариант, размер и скруглённая форма стандартного тоста.