Используйте сервис внутри редуктора в RXJS 6 - PullRequest
0 голосов
/ 02 июля 2018

В результате проверки подлинности я обрабатываю ошибку сервера:

catchError((err, caught) => {
   let toasterPayload = {
       title: 'Error',
       message: err,
       conf: {}
    }

    return [
       {
           type: CoreActions.SHOW_ERROR_TOASTR,
           payload: toasterPayload
       },
       caught
    ];

Цель состоит в том, чтобы позволить потоку наблюдаемого потока, а затем отправить действие, показывающее тостер. Чтобы не повторить строку this.toastrService.error(..,..) в witch catchError всех эффектов моего приложения, я написал общее и общее действие ( SHOW_ERROR_TOASTR ):

...other cases...
case (CoreActions.SHOW_ERROR_TOASTR):
    toastrService.error(action.payload.title, action.payload.message, action.payload.config);
    return state;

Вверху файла редуктора я импортировал сервис Toastr:

import * as toastrService from 'ngx-toastr';

но выдает следующую ошибку:

Свойство 'error' не существует для типа 'typeof "C: / Users / myPc / projects / test / node_modules / ngx-toastr / ngx-toastr"'.

Как правильно внедрить (и использовать его) сервис внутри редуктора? Является ли это хорошей практикой для централизации кода (чтобы не повторять тостер во всех catchErrors)?

...