MotionPresence
Mantiene el contenido montado mientras entra y sale animado.
WebReact NativeContenido y tamaño
Pruébalo
Preparando el ejemplo…
Uso mínimo
<MotionPresence present={visible} exit={{ opacity: 0, translateY: -12 }}>
Draft saved
</MotionPresence>;Lo que resuelve por ti
- Cambia
presenten lugar de desmontar; el contenido sale antes de eliminarse. - Restaurarlo durante una salida continúa desde los valores actuales.
- El contenido que vuelve a aparecer entra desde la pose
exit. - El primer render lo muestra en reposo, así que el contenido que ya estaba no parpadea.
Úsalo para
- Un aviso de borrador guardado.
- Un mensaje de cupón en un pago.
- Un mensaje de error bajo un campo.
Props
| Prop | Tipo | Por defecto | Descripción |
|---|---|---|---|
present | boolean | —obligatoria | Muestra u oculta el contenido. Cambia esto en lugar de desmontar. |
enter | Pose | { opacity: 1, translateY: 0 } | La pose en reposo. |
exit | Pose | { opacity: 0, translateY: -12 } | La pose con la que el contenido sale y desde la que entra. |
as | element | 'div' | El elemento que se renderiza. |
transition | Transition | spring | Una curva de tiempo { duration, easing } o un resorte { tempo: 'spring', spring }. Los resortes conservan su impulso cuando se interrumpen. |
onExitComplete | () => void | Se ejecuta después de que el contenido haya salido y se haya eliminado. |
Las demás props van al elemento renderizado, así que className, style y los manejadores de eventos funcionan como siempre.
Web y React Native
Las poses usan opacity, translateX, translateY, scale, scaleX, scaleY, rotate, width y height. onExitComplete se ejecuta después de que el contenido haya salido.
Las mismas poses y props funcionan en React Native.