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

163
Views
For loop in useEffect demasiados re-renderizados

Estoy trabajando en un ciclo for que comienza con 1 columna en window.innerHeight de 530 px y aumenta con +1 si window.innerHeight se incrementa con 40.

Esto es lo que tengo en este momento, pero dice demasiados renderizados cada vez. ¿Alguien sabe por qué?

 let gridcolumns = 1; useEffect(() => { for (let i = 530; i < window.innerHeight; i += 40) { gridcolumns += 1; } }); setColumnsAmount(gridcolumns);
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Debe agregar la lista de dependencias a su useEffect:

 let gridcolumns = 1; useEffect(() => { for (let i = 530; i < window.innerHeight; i += 40) { gridcolumns += 1; } setColumnsAmount(gridcolumns); },[]);
about 4 years ago · Juan Pablo Isaza Report

0

Su llamada useEffect no tiene una matriz de dependencia, por lo que su devolución de llamada se llama después de cada procesamiento. Luego, la devolución de llamada hace setColumnsAmount , que desencadena una nueva representación, que desencadena la devolución de llamada useEffect , que desencadena una nueva representación, etc.

Debe especificar una matriz de dependencia que diga qué es lo que debe cambiar para que desee ejecutar la devolución de llamada, o no use useEffect para esto en absoluto y haga el cambio de cantidad de columnsAmount en una devolución de llamada de evento (tal vez un evento de cambio de resize ) .


Nota al margen: probablemente pueda reemplazar el ciclo for con const x = Math.floor(window.innerHeight / 40); y luego hacer lo que quieras con x (por ejemplo, podrías agregarlo a gridColumns si eso es realmente lo correcto).

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