Ошибка: нет экспортированного члена "HTTP_PARAMS_FACTORY"
Я слежу за курсом Backbase Frontend Essentials на https://bbacademy.learnupon.com/ - и задача заключалась в создании модуля данных с RAML (RAML был предоставлен). Я загрузил предоставленный RAML, выполнил инструкции, но когда я пошел просматривать в браузере, мой терминал показывает следующую ошибку:
ERROR in libs/exchange-rate-data/src/exchange-rate-data.service.ts(5,33): error TS2305: Module '"../../../node_modules/@backbase/foundation-ang/data-http/backbase-foundation-ang-data-http"' has no exported member 'HTTP_PARAMS_FACTORY'.
libs/exchange-rate-data/src/exchange-rate-data.service.ts(5,54): error TS2305: Module '"../../../node_modules/@backbase/foundation-ang/data-http/backbase-foundation-ang-data-http"' has no exported member 'HttpParamsFactory'.
Я не трогал этот файл. Вот что я пробовал:
- Проверил мою версию узла - я на v10.18.1 (подумал, может быть, виновата более старая версия), а моя угловая версия - 8.
- Ран
npm install
а такжеnpm update
для обновления / узловых модулей - Я проверил
../../../node_modules/@backbase/foundation-ang/data-http/backbase-foundation-ang-data-http
и конечно же не нашелHTTP_PARAMS_FACTORY
ниHttpParamsFactory
- Проверена документация Backbase для
HTTP_PARAMS_FACTORY
а такжеHttpParamsFactory
и его часть Foundation-ang/data-http API.
Я новичок в backbase и думаю, что эта ошибка возникает из-за кода, который мне дали в учебнике, но я не уверен. Любая помощь будет оценена.
1 ответ
Я решил проблему, но не уверен на 100%, исправили ли все перечисленные ниже проблемы или нет. Вот что я сделал: в учебнике говорится об установке @backbase/foundation-ang в версии 4.25, но в этой версии не было ни псевдонима типа HttpParamsFactory, ни константы HTTP_PARAMS_FACTORY, на которые имеются ссылки в загруженной спецификации Raml, приведенной в руководстве. Я перешел на @backbase/foundation-ang версии 4.33.0. Я также изменил файл модуля из предоставленного RAML, импортировав HttpClientModule (который был у инструктора, но я этого не сделал по умолчанию), а затем изменил массив поставщика. Итак, мой окончательный файл exchange-rate-data.module.ts теперь выглядит так:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { InjectionToken, ModuleWithProviders, Optional } from "@angular/core";
import { HttpClientModule } from "@angular/common/http";
import { createServiceDataHttpConfig, DATA_HTTP_CONFIG, DataHttpModule, ServiceDataHttpConfig } from "@backbase/foundation-ang/data-http";
import { EXCHANGE_RATE_DATA_CONFIG, ExchangeRateDataService } from "./exchange-rate-data.service";
export const CONFIG_VALUE = new InjectionToken("ExchangeRateData Data Service :: Custom Http Config");
// export function createExchangeRateDataServiceDataHttpConfig(globalConfig: ServiceDataHttpConfig, serviceConfig?: Partial<ServiceDataHttpConfig>) {
// return createServiceDataHttpConfig(globalConfig, serviceConfig ? serviceConfig : { "servicePath": "" });
// }
@NgModule({
declarations: [],
imports: [
CommonModule,
DataHttpModule,
HttpClientModule
],
providers: [ExchangeRateDataService, {provide: CONFIG_VALUE, useValue: {
servicePath: '',
}}, {
provide: EXCHANGE_RATE_DATA_CONFIG,
useFactory: createServiceDataHttpConfig,
deps: [DATA_HTTP_CONFIG, CONFIG_VALUE],
}]
})