【问题标题】:ERROR in AppComponent cannot be used as an entry componentAppComponent中的ERROR不能作为入口组件
【发布时间】:2019-03-25 10:31:31
【问题描述】:

嘿,我是使用 Angular 和 Web 开发的新手,我已经浏览了一些教程。

当尝试合并使用我的 Firebase 数据库时,在本地编译(使用 ng serve)时,我的应用程序失败了。返回:“AppComponent不能作为入口组件”

如果您能提供任何帮助,那就太好了。在此先感谢:)

//app.component.ts
import { Component } from '@angular/core';
import {AuthService} from "./services/auth.service";
import {Router} from "@angular/router";
import { AngularFireDatabase } from 'angularfire2/database';
import { AngularFireList } from 'angularfire2/database';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})

class Event {
  constructor(public title) { }
}


export class AppComponent {
  title = 'qoqa';
  private eventCounter = 0;
  public events:AngularFireList<Event[]>;
  constructor(db: AngularFireDatabase, private authService: AuthService, private router: Router) {
    this.events= db.list('/events');
  }
  public AddEvent(): void {
    let newEvent = new Event(`My event #${this.eventCounter++}`);
    this.events.push([newEvent]);
  }
  signInWithFacebook() {
    this.authService.FacebookSignIn()
      .then((res) => {
        //this.router.navigate(['dashboard'])
      })
      .catch((err) => console.log(err));
  };
  signInWithGoogle() {
    this.authService.GoogleSignIn()
      .then((res) => {
        //this.router.navigate(['dashboard'])
      })
      .catch((err) => console.log(err));
  }
}

//app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AngularFireModule } from '@angular/fire';
import { AngularFirestoreModule } from '@angular/fire/firestore';
import { AngularFireAuthModule } from '@angular/fire/auth';
import { environment } from '../environments/environment';
import { LoginComponent } from './login.component';
import { AppRoutingModule } from './app-routing';
import { AngularFireDatabaseModule } from 'angularfire2/database';
import { AuthService } from './services/auth.service';

import { AppComponent } from './app.component';
import { HomeComponent } from './home/home.component';
import { CreateEventComponent } from './create-event/create-event.component';
import { EventsComponent } from './events/events.component';
import { ProfileComponent } from './profile/profile.component';
import { SavedEventsComponent } from './saved-events/saved-events.component';
import { InvitationsComponent } from './invitations/invitations.component';
import { CreateQoqaComponent } from './create-qoqa/create-qoqa.component';



@NgModule({
  declarations: [
    AppComponent,
    LoginComponent,
    HomeComponent,
    CreateEventComponent,
    EventsComponent,
    ProfileComponent,
    SavedEventsComponent,
    InvitationsComponent,
    CreateQoqaComponent
  ],
  imports: [
    AngularFireModule.initializeApp(environment.firebase),
    AngularFirestoreModule,
    AngularFireAuthModule,
    AngularFireDatabaseModule,
    AppRoutingModule,
    BrowserModule
  ],
  providers: [AuthService],
  bootstrap: [AppComponent]
})
export class AppModule { }

【问题讨论】:

  • 您可以编辑app.module.ts 文件并将其添加到您的问题中吗?
  • 您很可能在app.module.tsentryComponents 数组中添加了“AppComponent”。从那里删除它,这个错误应该被修复......
  • @HDJEMAI 我很高兴,现在已添加。
  • @miselking 我已经添加了我的 app.module.ts,我认为我没有 entryComponents 数组或者我可能不熟悉。

标签: angular typescript firebase firebase-realtime-database components


【解决方案1】:

@Component 装饰应该用于AppComponent 而不是Event

还要检查AppComponent 是否在AppModule 上声明。

【讨论】:

    【解决方案2】:

    我只是想提供一个@ibenjelloun 解释的问题示例。

    @Component({ ... }),虽然看起来有点像普通的函数调用,但实际上是一个 装饰器,因此它必须位于您希望 Angular 将其视为组件的类之前。所以请确保不要在@Component({ ... })export class YourComponent 之间放置类。

    所以将Event 移动到AppComponent 之前/之后:

    class Event {
        constructor(public title) { }
    }
    
    @Component({
        selector: 'app-root',
        templateUrl: './app.component.html',
        styleUrls: ['./app.component.css']
    })
    export class AppComponent {
        ...
    

    【讨论】:

      【解决方案3】:

      此问题是由于语法错误或小错误造成的。在我的 app.component.ts 文件中添加一个新组件时,我遇到了同样的问题。在解决问题的同时,我来到 StackOverflow 并想分享我的经验。

      在检查所有文件时,我在app.component.ts 文件中发现了一些语法错误和小错误。

      在解决它们并编译后,我能够得到准确的错误消息。

      一个问题是没有正确的文件路径安装,所以我希望这可能是您的应用程序在编译时失败的原因。

      import { AngularFireDatabase } from '**angularfire2/database**';
      import { AngularFireList } from '**angularfire2/database**';
      

      【讨论】:

        猜你喜欢
        • 2019-04-25
        • 2017-08-19
        • 2022-10-05
        • 2019-09-02
        • 2019-05-25
        • 1970-01-01
        • 1970-01-01
        • 2017-10-03
        • 1970-01-01
        相关资源
        最近更新 更多