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

416
Views
El temporizador angular parpadea debido a la destrucción del componente

Tengo un componente principal donde obtengo los datos de BE y donde paso los datos al componente secundario:

 <app-team-tile [teamData]="team" (openNotes)="openNotes($event)"></app-team-tile>

teamData representa una colección de miembros del equipo. En el componente teamTile, paso los datos al siguiente componente secundario:

 <app-team-firefighter [firefighter]="firefighter" [longestAlarm]="getTheLongestFirefighterAlarm(firefighter)" ></app-team-firefighter>

la alarma más larga es un método que devuelve una alarma al componente secundario. En el componente app-team-firefighter tengo un temporizador en el método ngOnChanges:

 ngOnChanges(): void { if (this.longestAlarm) { interval(1000).pipe( map((count: any) => this.format(count + this.longestAlarm.duration)) ).subscribe((time: string) => { this.timer = time; }); } }

En la plantilla, muestro el valor this.timer , pero parpadea cada 5 segundos porque obtengo datos de BE cada 5 segundos, y sé que cuando obtengo datos de BE en el padre, el hijo los destruye. ¿Qué puedo hacer para eliminar este parpadeo? ¡Gracias por adelantado!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

¿Por qué está haciendo esto en ngOnChanges -> este gancho de ciclo de vida se llama cada vez que cambia un valor de entrada? Pero no está utilizando estos valores de cambio, por lo que debe mover su suscripción a ngOnInit .

Si cambia sus entradas cada 5 segundos, ¡está creando una nueva suscripción cada vez que se ejecuta el método! (probablemente causando su parpadeo). Tampoco los está limpiando por lo que puedo ver, por lo que solo está haciendo suscripciones duplicadas cada 5 segundos, lo que provocará una pérdida de memoria.

¡Querrás darte de baja! (No he incluido esto a continuación)

 ngOnInit() { interval(1000).pipe( filter(_ => !!this.longestAlarm), map((count: any) => this.format(count + this.longestAlarm.duration)) ).subscribe((time: string) => { this.timer = time; }); }
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!