如何修复错误错误:未捕获(承诺):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 的提供者

错误:`未捕获(承诺中)类型错误:无法读取未定义的属性'doc'`

GraphQL + Apollo 错误:未捕获(承诺中)