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

512
Visualizações
Angular 12, Typecript 4.2: la clase se enumera en las declaraciones de NgModule, pero no es una directiva, un componente o una tubería

Actualicé mi aplicación de Angular 11 a 12 y a TypeScript 4.2.4. Cuando sirvo, la aplicación no se compila con el error:

 error NG6001: The class 'ChartComponent' is listed in the declarations of the NgModule 'PrototypeModule', but is not a directive, a component, or a pipe. Either remove it from the NgModule's declarations, or add an appropriate Angular decorator. 41 , ChartComponent ~~~~~~~~~~~~~~~~~~~~~~~~ src/app/chartPage/Chart/chart.component.ts:46:14 46 export class ChartComponent implements OnInit { ~~~~~~~~~~~~~~~~~~~~~~~~ 'ChartComponent' is declared here.

Este es el código en el PrototypeModule

 import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { ChartComponent } from './chartPage/Chart/chart.component'; @NgModule({ declarations: [ ChartComponent ] schemas: [ CUSTOM_ELEMENTS_SCHEMA ], }) export class ChartPrototypeModule { } @NgModule({ imports: [ChartPrototypeModule] , exports: [], schemas: [ CUSTOM_ELEMENTS_SCHEMA ] }) export class PrototypeModule { }

El ChartComponent es el siguiente:

 import {Component, Input, ViewEncapsulation, Injectable, OnInit, SimpleChange, NgModule} from '@angular/core'; import { DataLoadService } from '../../services/data-load.service'; @Component({ selector: 'app-chart', templateUrl: `./chart.component.html`, styleUrls: ['./chart.component.scss'] , encapsulation: ViewEncapsulation.None }) @Injectable({ providedIn: 'root' }) @NgModule({ imports: [SharedModule] }) export class ChartComponent implements OnInit { constructor(private data: DataLoadService) { //constructor code }; }

No tengo pistas sobre lo que podría estar causando el error. ¿Cómo puedo solucionar esto?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Entonces, como @Muhammet Can TONBUL ha mencionado, está usando el componente de manera incorrecta.

En primer lugar, su componente debería verse así:

 @Component({ selector: 'app-chart', templateUrl: `./chart.component.html`, styleUrls: ['./chart.component.scss'], // Use this only if you DON'T want to encapsulate your SCSS encapsulation: ViewEncapsulation.None }) export class ChartComponent implements OnInit { constructor(private data: DataLoadService) { ... }; ... }

El siguiente paso es crear un NgModule como ya lo ha hecho:

 @NgModule({ declarations: [ ChartComponent ], schemas: [ CUSTOM_ELEMENTS_SCHEMA ], }) export class ChartPrototypeModule { }

Entonces, ahora ha declarado su componente y puede usarlo ahora, pero actualmente solo en los otros componentes de ChartPrototypeModule .

Para cambiar esto, también debe exportar su componente en el módulo. Esto se vería algo como esto:

 // Introduced an additional array so it is not needed // to add your components twice const COMPONENTS = [ ChartComponent ]; @NgModule({ declarations: [ COMPONENTS ], exports: [ COMPONENTS ], schemas: [ CUSTOM_ELEMENTS_SCHEMA ], }) export class ChartPrototypeModule { }

Ahora puede usar su componente en cada módulo donde haya importado el ChartPrototypeModule .

Puede leer más sobre los módulos de características aquí .

Nota: Si está utilizando los COMPONENTS de matriz introducidos para reducir la redundancia, solo agregue los componentes que desea usar fuera del módulo.

over 4 years ago · Santiago Trujillo 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