¿Restablecer el estado de React después de que finalice la animación del componente?

Carrein

Estoy intentando animar un texto sobre un botón como diálogo de confirmación.

Ingenuamente, onClickestablece un estado en el trueque, a su vez, renderiza un componente de texto basado en un condicional. Sin embargo, dado que el estado está bloqueado true, una vez que se hace clic en el botón y se reproduce la animación, los clics posteriores no vuelven a ejecutar la animación.

CodeSandbox: https://codesandbox.io/s/youthful-shape-gwe43

App.jsx

import React, { useState } from "react";
import "./styles.css";
import styled, { keyframes } from "styled-components";

export const animation = keyframes`
 0% { opacity: 0; }
 50% { opacity: 1; }
 100% { opacity: 0; }
`;

export const Text = styled.span`
  margin-bottom: 10px;
  animation-name: ${animation};
  animation-duration: 5s;
  animation-iteration-count: 1;
`;

export default function App() {
  const [sample, setSample] = useState(false);

  return (
    <div className="App">
      <h1>Hello CodeSandbox</h1>
      {sample ? <Text>Start editing to see some magic happen!</Text> : null}
      <button onClick={() => setSample(true)}>Click me</button>
    </div>
  );
}

¿Cómo puedo volver a ejecutar la animación de un componente cada vez que se hace clic en un botón?

imran haider

Reemplace su código con lo siguiente. Establezca la setTimeoutmisma duración que animation-durationsolo para sincronizar la animación

export default function App() {
  const [sample, setSample] = useState(false);
  const showSample = () => {
    setSample(true);
    setTimeout(() => {
      setSample(false);
    }, 5000);
  };
  return (
    <div className="App">
      <h1>Hello CodeSandbox</h1>
      {sample ? <Text>Start editing to see some magic happen!</Text> : null}
      <button onClick={showSample}>Click me</button>
    </div>
  );
}

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Ejecute el código después de que finalice la animación activada por NSFetchedResultsController

¿Cómo restablecer el estado del botón a deshabilitado después de restablecer el formulario?

No se puede evitar que React actualice el componente principal después del cambio de estado

Leer el estado del componente justo después de la configuración al usar useState hook en react

Restablecer el estado del enlace después de hacer clic

El componente de tabla no se vuelve a representar después de la actualización del estado

La superposición del componente no desaparece incluso después de cambios de estado en react native

Renderizar el componente de reacción después de que la animación mecanografiada haya terminado

Mantener el estado del componente después de la actualización

Mantener el estado del componente después de la actualización

Llame a la función C ++ después de que finalice la animación QML

cómo establecer valores de estado iniciales en el constructor del componente de reacción solo después de que se complete la suscripción a meteor

No mostrar ninguno después de que finalice la animación css

Cómo ejecutar funciones después de que finalice la animación css

Llame entonces solo después de que finalice la promesa de devolución del método

¿Cómo detener la función del componente secundario que se ejecuta nuevamente después de que se cambia el estado principal?

¿Cómo detener la ejecución de la animación inicial después de que se realiza la animación del estado de desplazamiento?

Agregar evento después de que finalice la reproducción del video

Vue.js: espere hasta que finalice la animación antes de actualizar un componente

El componente secundario de React no se actualiza después del cambio de estado principal

¿Cómo deshabilitar el efecto de desplazamiento para la transición o el tiempo de animación y luego habilitarlo después de que la transición o la animación finalice en css?

Llamando a la función definida usando useCallback después de establecer el estado del que depende

El componente de reacción no se recarga después de que la solicitud ajax cambia de estado

Resolver el problema del componente que no se vuelve a procesar después de la actualización

¿Cómo puedo cerrar el archivo después de que finalice la transmisión?

¿Cómo puedo cerrar el archivo después de que finalice la transmisión?

Modificar el estado del componente después de que se resuelva una promesa

Restablecer la animación después de removeAllAnimations ()

¿Por qué la inicialización del estado del componente de React nulo obtiene el tipo "nunca"?

TOP Lista

  1. 1

    ¿Cómo ocultar la aplicación web de los robots de búsqueda? (ASP.NET)

  2. 2

    OAuth 2.0 utilizando Spring Security + WSO2 Identity Server

  3. 3

    Manera correcta de agregar referencias al proyecto C # de modo que sean compatibles con el control de versiones

  4. 4

    Ver todos los comentarios en un video de YouTube

  5. 5

    uitableview delete button image in iOS

  6. 6

    ¿Título del selector de SwiftUI?

  7. 7

    Swift / Firebase : Facebook 사용자가 계정을 만들 때 Firebase 데이터베이스에 제대로 저장하려면 어떻게해야합니까?

  8. 8

    ¿Es posible reemplazar los valores de un archivo config.properties a través de TFS?

  9. 9

    Representación de mapas 3D en juegos

  10. 10

    Golang ListenAndServeTLS devuelve datos cuando no se usa https en el navegador

  11. 11

    Declarar propiedades reactivas (agregar bloques de componentes dinámicamente desde la inserción de matriz)

  12. 12

    Cómo hacer que SwiftUI Text multilineTextAlignment comience desde arriba y centro

  13. 13

    Cómo depurar una aplicación React en Visual Studio 2019 usando la plantilla "Blank Node.js"

  14. 14

    Múltiples relaciones en la misma tabla con dos columnas Laravel

  15. 15

    No existe tal archivo o directorio cuando se inicia el nombre del directorio con /

  16. 16

    Verilog : 입력 신호를 한 클럭 주기로 지연시키는 방법은 무엇입니까?

  17. 17

    ¿Cómo hacer un generador de ruido Perlin más suave?

  18. 18

    Problème avec le dessin d'un élément Qml avec des appels OpenGL bruts

  19. 19

    El nombre 'HttpContext' no existe en el contexto actual en Razor

  20. 20

    WPF pleine largeur DataGridColumn sur la largeur de DataGrid

  21. 21

    Tengo algunos problemas con el syscall de golang cuando llamo a dll en win7-64

CalienteEtiquetas

Archivo