我尝试将我的应用更新为Angular 5.稍后出现一些错误,我现在有一个我无法解决的错误。
未捕获错误:意外值' HttpClient'由模块导入的AppModuleShared'。请添加@NgModule注释。
我检查了我的AppModuleShared,但没有发现错误。
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { HttpClient, HttpClientModule } from '@angular/common/http';
import { RouterModule } from '@angular/router';
import { AppComponent } from './components/app/app.component';
import { NavMenuComponent } from './components/navmenu/navmenu.component';
import { HomeComponent } from './components/home/home.component';
import { StoreModule } from './store/store.module';
import { LandingPageModule } from './components/landingpage/landingpage.module';
//import { RegisterComponent } from './components/auth/register.component';
import { LoginComponent } from './components/auth/login/login.component';
import { HeaderLoginComponent } from './components/auth/headerlogin/headerlogin.component';
import { MessageListComponent } from './components/messagelist/messagelist.component';
import { AuthModule } from './components/auth/auth.module';
@NgModule({
declarations: [
AppComponent,
NavMenuComponent,
HomeComponent,
HeaderLoginComponent,
MessageListComponent
],
providers: [
],
imports: [
CommonModule,
HttpClient,
FormsModule,
StoreModule,
LandingPageModule,
AuthModule,
HttpClient,
HttpClientModule,
RouterModule.forRoot([
{ path: 'home', component: HomeComponent },
{ path: '**', redirectTo: '' }
])
]
})
export class AppModuleShared {
constructor(
) {
}
}
谁知道该怎么做?
答案 0 :(得分:1)
您不应该导入HttpClient。这是直接导入到您的组件内部的。导入部分仅适用于模块。 HttpClientModule应该是NgModule导入中唯一导入的。 (为什么你有两次进口?)你有:
import: [
HttpClient,
...
HttpClient,
HttpModule
]
但它应该是:
import: [
...
HttpClientModule
]
和组件:
import { HttpClient } from '@angular/common/http';
export class MyComponent {
constructor(private http: HttpClient) {}
}
答案 1 :(得分:1)
1)从导入
中删除HtttpClient
2)将它添加到构造函数中:`constructor(private httpClient:HttpClient){}
它是HttpClientModule np.load