MotionPresence
Держит содержимое смонтированным, пока оно анимированно появляется и уходит.
ВебReact NativeСодержимое и размер
Попробуйте
Подготовка примера…
Кратчайшее использование
<MotionPresence present={visible} exit={{ opacity: 0, translateY: -12 }}>
Draft saved
</MotionPresence>;Что он берёт на себя
- Меняйте
presentвместо размонтирования; содержимое уходит, прежде чем его удалят. - Возврат во время ухода продолжается с текущих значений.
- Повторно появляющееся содержимое входит из позы
exit. - Первый рендер показывает его в покое, поэтому уже имеющееся содержимое не мигает.
Для чего подходит
- Уведомление о сохранённом черновике.
- Сообщение о купоне при оформлении заказа.
- Сообщение об ошибке под полем.
Props
| Проп | Тип | По умолчанию | Описание |
|---|---|---|---|
present | boolean | —обязательно | Показать или скрыть содержимое. Меняйте это вместо размонтирования. |
enter | Pose | { opacity: 1, translateY: 0 } | Поза в покое. |
exit | Pose | { opacity: 0, translateY: -12 } | Поза, с которой содержимое уходит и из которой входит. |
as | element | 'div' | Элемент для рендера. |
transition | Transition | spring | Кривая timing { duration, easing } или пружина { tempo: 'spring', spring }. При прерывании пружины сохраняют инерцию. |
onExitComplete | () => void | Выполняется после того, как содержимое ушло и было удалено. |
Остальные props передаются отрендеренному элементу, поэтому className, style и обработчики событий работают как обычно.
Веб и React Native
Позы используют opacity, translateX, translateY, scale, scaleX, scaleY, rotate, width и height. onExitComplete выполняется после того, как содержимое ушло.
Те же позы и props работают в React Native.