Ошибка: нет экспортированного члена "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'.

Я не трогал этот файл. Вот что я пробовал:

  1. Проверил мою версию узла - я на v10.18.1 (подумал, может быть, виновата более старая версия), а моя угловая версия - 8.
  2. Ран npm install а также npm update для обновления / узловых модулей
  3. Я проверил ../../../node_modules/@backbase/foundation-ang/data-http/backbase-foundation-ang-data-http и конечно же не нашел HTTP_PARAMS_FACTORY ни HttpParamsFactory
  4. Проверена документация 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],
        }]
})

Другие вопросы по тегам