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

60
Vistas
useState demasiado lento para la transmisión de video useInterval

Cada 33 milisegundos, quiero registrar los cambios realizados en un elemento de formulario. Necesito que esto se haga cada 33 milisegundos, porque intento grabar un "video" de un elemento de formulario registrando cambios en el elemento de formulario cada 33 milisegundos. En una página separada, mostraré estos cambios cada 33 milisegundos, dando la ilusión de un video.

Necesito usar el gancho useState en React. Al diagnosticar, descubrí que useState es tan lento que no puedo usarlo para registrar cambios en el intervalo de 33 ms. Cuando escribo texto rápidamente en el elemento de formulario, se retrasa considerablemente.

¿Hay alguna manera de registrar cambios en el elemento de formulario cada 33 milisegundos usando React? Puedo pensar en tres formas: encontrar una alternativa adecuada a useState, usar una solución de transmisión de video más nativa, alguna forma de subprocesamiento múltiple de javascript. Por favor, ayúdame.

 import React, { useState, useEffect } from 'react' const store = [] const Record2 = (props) => { const [seconds, setSeconds] = useState(0) const [data, setData] = useState("") const [capturing, setCapturing] = React.useState(false); const handleChange = (e) => { setData(e.target.value) } const handleClick = (e) => { setCapturing(oldCapturing => !oldCapturing) } useEffect(() => { console.log("store", store) const interval = setInterval(() => { if (capturing) { setSeconds(seconds => seconds + 0.033); store.push({ seconds, data }) console.log(store) } }, 33); return () => clearInterval(interval); }); return ( <div> <input onChange={handleChange} value={data}></input> <button onClick={handleClick}>{capturing ? "end capture" : "start capture"}</button> </div> ) } export default Record2
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