Как использовать Inversify. js в приложении «Реакция редукса» на уровне сервиса. - PullRequest
1 голос
/ 17 февраля 2020

Я хотел бы использовать inversify в приложении response-redux, но только на уровне обслуживания, а не через компонент enet

У меня есть служба настройки, которую необходимо вызвать в API (служба Http) Я бы хотел своего рода провайдера, который даст мне возможность вызывать settingsService.get () в файле actions.ts

Как инициализировать объекты всех моих служб

мой файл actions.ts: я предполагаю, чтобы принести контейнер сюда и использовать conainter.get ... это плохая практика

export const increment = () => (dispatch: any) => {
  dispatch({
    type: INCREMENT
  });
};

Мои настройки Сервис

@injectable()
export class SettingsService implements Settings {
@inject(TYPES.Test) private testService!: Test;
  get() {
   // some api call
    return this.testService.test();
  }
}

Мой inversify.ts

const container = new Container();

function init() {
  container
    .bind<Settings>(TYPES.Settings)
    .to(SettingsService)
    .inSingletonScope();
  container
    .bind<Test>(TYPES.Test)
    .to(TestService)
    .inSingletonScope();
}

export { container, init };

Мой вопрос:

1 - где мне инициализировать сервисы? это определение в iversify.ts в порядке? мне нужно инициализировать контейнер в index.ts в приложении реагировать? теперь я вызываю init () в index.ts

2 - как мне вызвать settingsService в actions.ts (action.ts не на основе классов) - это функция действия с избыточностью

3 - должно легко проверяться

Мой стек

Реагировать, редукция, машинопись

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...