Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

156
Vistas
Ejecutando 5 cuentas regresivas sucesivamente en React

Tengo una cuenta regresiva, me gustaría que la cuenta regresiva transcurriera de 5 segundos a 0 y luego comenzara de nuevo, pero esta vez desde un momento diferente.

En términos más claros; Tengo 5 fases, mi temporizador pasará, el reloj comenzará en la fase 1, corriendo de 5 segundos a 0. Después de que el reloj llegue a cero, quiero establecer el estado en la etapa 2 y luego ejecutar el reloj de 6 segundos a 0 , luego configure el estado en la fase 3, ejecute el reloj de 7 a 0, luego la fase 4, ejecute de 8 a 0 y luego termine en la etapa 5 corriendo de 9 segundos a 0.

Esto es lo que he probado:

 const renderTime = ({ remainingTime }) => { if (remainingTime === 0) { return <div className="timer">Too late...</div>; } return ( <div className="timer"> { /* <div className="text">Remaining</div> */} <div className="value">{remainingTime}</div> { /* <div className="text">seconds</div> */} </div> ); }; const Timer = (props) => { const [ timer, setTimer ] = useState(5) const { remainingTime } = renderTime; const [stage, setStage] = useState(1) console.log(renderTime) // let text = document.querySelector('.value').innerText // console.log(text) const timerMap = { 2: 6, 3: 7, 4: 8, 5: 9 } const changeTimer = (timer, stage, setStage) => { while (stage >= 5) { if(timer === 0) { setStage(stage+1) setTimer(timerMap[stage]) } return timer } }; return ( <div className="App"> <div className="timer-wrapper"> <CountdownCircleTimer isPlaying duration={changeTimer(timer)} colors={["#004777", "#F7B801", "#A30000", "#A30000"]} colorsTime={[10, 6, 3, 0]} onComplete={() => ({ shouldRepeat: true, delay: 1 })} size={100} > {renderTime} </CountdownCircleTimer> </div> </div> ); };

Recibo el mensaje de error:

 Warning: Received NaN for the `strokeDashoffset` attribute. If this is expected, cast the value to a string.

Agradecería cualquier ayuda

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda