Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

248
Visualizações
El elementId es nulo después de la segunda vez que se ha inicializado el componente

Tengo un componente donde dibujaré un gráfico de lienzo. Y cuando inicializo el componente por primera vez, todo está bien, pero si dejo este componente y vuelvo a él nuevamente, entonces document.getElementById('myChart'); es nulo y no dibuja mi gráfico

 ngAfterViewInit() { Chart.register(...registerables); this.Chart(); } private Chart() { const ctx: any = document.getElementById('myChart'); const myChart = new Chart(ctx.getContext('2d'), { // some shit }) }

Traté de hacerlo diferente

 const canvas = <HTMLCanvasElement>document.getElementById('myChart'); const ctx = canvas.getContext('2d');

Pero no entendí muy bien cómo resolver este error y finalmente llegué a la primera opción.

 Argument of type 'CanvasRenderingContext2D | null' is not assignable to parameter of type 'ChartItem'.   Type 'null' is not assignable to type 'ChartItem'.
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Me acerqué a este problema desde un ángulo diferente. Primero usé ViewChild y le apliqué ElementRef

 @ViewChild('myChart') chartRef: ElementRef; private myChart: Chart;

Y asegúrese de usar todo en ngAfterViewInit ya que comienza a funcionar después de construir el árbol DOM

 ngAfterViewInit(): void { this.Chart(); } this.myChart = new Chart(this.chartRef.nativeElement, {some shit})
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda