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

161
Vistas
¿Por qué setState en el cuerpo del componente provoca un bucle infinito incluso si está configurando el mismo valor inicial?

El código a continuación no debería activar una nueva representación porque está pasando el mismo valor inicial, ¿verdad? Pero, en cambio, provoca el error "Demasiados renderizados".

 function Test() { const [counter, setCounter] = useState(0) setCounter(0) return <></> }

Editar: si configura Contador (0) en una función y lo adjunta a un clic de botón, no activará una nueva representación ya que tiene el mismo valor, entonces, ¿por qué desencadena una nueva representación cuando se coloca en el cuerpo del componente? ? Soy consciente del useEffect con una matriz de dependencia vacía para evitar el ciclo infinito.

Si haces esto, verás que no se vuelve a renderizar:

 function Test() { const [counter, setCounter] = useState(0) console.log('render'); const set = () => { setCounter(0) }; return <button onClick={set}>Set</button> }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

En React, no importa si está actualizando el mismo valor o no. Si actualiza el estado, volverá a representar el componente.

En su caso, tiene SetState en el cuerpo del Componente. Por lo tanto, se volverá a representar y causará un bucle infinito.

Si solo desea actualizar una vez, use useEffect en su lugar.

 useEffect(() => { setCounter(0) },[])
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si actualiza el estado directamente dentro de su método de representación o el cuerpo de un componente funcional, provocará un bucle infinito.

Actualizaciones de estado → activa la nueva renderización → actualizaciones de estado → activa la nueva renderización → …

Puedes echarle un vistazo a este artículo

about 4 years ago · Juan Pablo Isaza Denunciar
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