Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

231
Views
¿Se pasa una función diferente a useEffect en cada renderizado? - Efecto de uso de ReactJS

Estaba revisando useEffect de los documentos de reactjs y encontré esta declaración aquí

Los desarrolladores de JavaScript experimentados pueden notar que la función que se pasa a useEffect va a ser diferente en cada renderizado.

Estamos pasando una función a useEffect y se dice que esta función es diferente para cada renderizado. useEffect tiene acceso al estado y accesorios ya que está dentro del componente de la función y cuando cualquiera de estos cambios, podemos ver ese cambio en la función de useEffect (debido al cierre), ¿verdad? Esto no está claro, porque en la siguiente línea el documento dice

Esto es intencional. De hecho, esto es lo que nos permite leer el valor de conteo desde dentro del efecto sin preocuparnos de que se vuelva obsoleto.

Para contrarrestar esto, supongamos que tenemos una función

 function foo(n) { bar = () => { setTimeout(() => console.log({n}), 50); return n; } setTimeout(() => {n = 10}, 0); setTimeout(() => {n = 20}, 100); setTimeout(() => {n = 30}, 150); return bar; } baz = foo(1); baz(); //prints 10 setTimeout(baz, 300); //prints 30

Parece que cuando se cambia el valor de cierre (n), podemos ver ese cambio en la devolución de llamada de setTimeout (y esta devolución de llamada no cambia con el tiempo). Entonces, ¿cómo puede el valor cerrado (estado/accesorios) en la función de useEffect volverse obsoleto como se menciona en los documentos?

¿Me estoy perdiendo de algo? Creo que es más una pregunta de JS en comparación con React, así que tomé un ejemplo de JS.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!