provideHttpClient“类型‘EnvironmentProviders’不可分配给类型‘Provider’。Angular 18 中出现错误

问题描述 投票:0回答:1
我正在开发 Angular 18 应用程序,并且从已弃用的“HttpClientModule”中收到错误,因此我转向了 ProvideHttpClient 并不断收到“类型‘EnvironmentProviders’不可分配给类型‘Provider’错误。

错误

Type 'EnvironmentProviders' is not assignable to type 'Provider'.


app.component.ts

import { Component, ViewEncapsulation } from '@angular/core'; import { RouterOutlet } from '@angular/router'; import { provideHttpClient, withFetch } from '@angular/common/http'; @Component({ selector: 'app-root', standalone: true, imports: [RouterOutlet], providers: [provideHttpClient(withFetch())], templateUrl: './app.component.html', styleUrls: ['./app.component.css'], }) export class AppComponent { title = 'chat-frontend'; }

app.config.ts

import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; import { provideClientHydration } from '@angular/platform-browser'; import { provideHttpClient, withFetch } from '@angular/common/http'; export const appConfig: ApplicationConfig = { providers: [ provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes), provideClientHydration(), provideHttpClient(withFetch()) ] };
main.ts

import { bootstrapApplication } from '@angular/platform-browser'; import { provideRouter } from '@angular/router'; import { provideHttpClient, withFetch } from '@angular/common/http'; import { AppComponent } from './app/app.component'; import { routes } from './app/app.routes'; bootstrapApplication(AppComponent, { providers: [ provideRouter(routes), provideHttpClient(withFetch()) ] }).catch(err => console.error(err));

main.server.ts

import { bootstrapApplication } from '@angular/platform-browser'; import { AppComponent } from './app/app.component'; import { config } from './app/app.config.server'; import { provideHttpClient, withFetch } from '@angular/common/http'; const bootstrap = () => bootstrapApplication(AppComponent, config); export default bootstrap;
    
angular angularjs typescript mean-stack angular-http
1个回答
0
投票
如果您在

provideHttpClient

 添加 
bootstrapApplication
,则会在整个申请中提供。

import { Component, ViewEncapsulation } from '@angular/core'; import { RouterOutlet } from '@angular/router'; import { provideHttpClient, withFetch } from '@angular/common/http'; @Component({ selector: 'app-root', standalone: true, imports: [RouterOutlet], providers: [], // <- remove this! templateUrl: './app.component.html', styleUrls: ['./app.component.css'], }) export class AppComponent { title = 'chat-frontend'; }
    
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.