如何修复错误错误:未捕获(承诺):NullInjectorError:StaticInjectorError(AppModule)[HomeComponent - > HttpHeaders]
Posted
技术标签:
【中文标题】如何修复错误错误:未捕获(承诺):NullInjectorError:StaticInjectorError(AppModule)[HomeComponent - > HttpHeaders]【英文标题】:How to fix ERROR Error: Uncaught (in promise): NullInjectorError: StaticInjectorError(AppModule)[HomeComponent -> HttpHeaders] 【发布时间】:2020-03-03 19:55:36 【问题描述】:在使用 GET 方法从 API 调用中获取时,我遇到了这样的问题
core.js:6014 ERROR 错误:未捕获(承诺中):NullInjectorError:StaticInjectorError(AppModule)[HomeComponent -> HttpHeaders]: StaticInjectorError(平台:核心)[HomeComponent -> HttpHeaders]: NullInjectorError:没有 HttpHeaders 的提供者! NullInjectorError: StaticInjectorError(AppModule)[HomeComponent -> HttpHeaders]: StaticInjectorError(平台:核心)[HomeComponent -> HttpHeaders]: NullInjectorError:没有 HttpHeaders 的提供者! 在 NullInjector.get (core.js:855) 在 resolveToken (core.js:17513) 在 tryResolveToken (core.js:17439) 在 StaticInjector.get (core.js:17265) 在 resolveToken (core.js:17513) 在 tryResolveToken (core.js:17439) 在 StaticInjector.get (core.js:17265) 在 resolveNgModuleDep (core.js:30392) 在 NgModuleRef_.get (core.js:31577) 在 resolveDep (core.js:32142) 在 resolvePromise (zone-evergreen.js:797) 在 resolvePromise (zone-evergreen.js:754) 在 zone-evergreen.js:858 在 ZoneDelegate.invokeTask (zone-evergreen.js:391) 在 Object.onInvokeTask (core.js:39679) 在 ZoneDelegate.invokeTask (zone-evergreen.js:390) 在 Zone.runTask (zone-evergreen.js:168) 在 drainMicroTaskQueue (zone-evergreen.js:559)
代码:
return this.http
.get('http://localhost/advanced/frontend/web/leftside-menu/get-left-menu')
.subscribe(
(result) =>
);
【问题讨论】:
显示app.module.ts代码,必须import HttpClientModule
你在 app.module.ts 中导入了HttpClientModule
吗?如果没有,则输入此行代码,import HttpClientModule from '@angular/common/http'; @NgModule( declarations: [ ], imports: [ HttpClientModule ]
这发生在我身上,我确实添加了 HttpClientModule 但它对我不起作用。后来我注意到在代码中,我忘了提到在@NgModule( providers:[ ])
数组中的那个特定组件中创建的Service 类。添加并导入正确的文件后,它对我有用。
【参考方案1】:
您是否在 app.module.ts 中导入了HttpClientModule
?如果没有,那么把这行代码..
import HttpClientModule from '@angular/common/http';
@NgModule(
imports: [ BrowserModule, FormsModule, HttpClientModule ],
declarations: [ ]
)
【讨论】:
嗨 GaurangDhorda 我已经添加了该代码仍然无法正常工作 @SaiRamakuri 你找到解决方案了吗? 是的问题已修复【参考方案2】:此外,如果出现这种情况,请检查您在任何组件的构造函数中编写的内容。
例如,我出于某种原因放了另一个组件,所以这是错误的 当我删除它时,它开始工作了
constructor(
private chatRoomsService: ChatRoomService,
private router: Router,
private route: ActivatedRoute
private messageComponent: MessageComponent //it has to be erased
)
【讨论】:
【参考方案3】:在 app.module.ts 中导入 HttpClientModule
import HttpClientModule from '@angular/common/http';
@NgModule(
imports: [ BrowserModule, FormsModule, HttpClientModule ],
declarations: [ ]
)
在你的 service.ts 文件中导入 HttpClient
import MyModel from './my-model.model'
export class UserMaterService
list: MyModel[];
constructor(private http: HttpClient)
this.http.get(url).toPromise().then(res => this.stringData = res as listData[]);
【讨论】:
以上是关于如何修复错误错误:未捕获(承诺):NullInjectorError:StaticInjectorError(AppModule)[HomeComponent - > HttpHeaders]的主要内容,如果未能解决你的问题,请参考以下文章
如何防止错误“未捕获(承诺中)DOMException:播放()请求被暂停()调用中断。”?
Ionic - 如何正确导入 ViewController? - 未捕获(承诺):错误:没有 ViewController 的提供者