Получение ошибки ngrx Store не является экземпляром rxjs Observable - PullRequest
0 голосов
/ 11 октября 2018

Я получаю ошибку You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable. в моем угловом проекте.По сути, я пытаюсь получить доступ к значению состояния хранилища в моем эффекте, как показано ниже:

@Effect()
getHoles$ = this.actions$.pipe(
  ofType<GetTreeHoles>(HolesActions.GetTreeHoles),
  withLatestFrom(this.store.pipe(select(getLastDocumentSnapshot))),
  ...

Однако, когда код пытается разрешить наблюдаемое ниже, он выдает ошибку.

this.store.pipe(select(getLastDocumentSnapshot))

Я попытался пошагово выполнить код, и понял, что код не работает в файле rxjs 'subscribeTo.js:

if (result instanceof Observable_1.Observable) {

Это, если оператор возвращает false.Этот оператор if должен возвращать true, потому что хранилище расширяет Observable.Таким образом, код переходит к следующему оператору else и выдает ошибку:

else {
    var value = isObject_1.isObject(result) ? 'an invalid object' : "'" + result + "'";
    var msg = "You provided " + value + " where a stream was expected."
        + ' You can provide an Observable, Promise, Array, or Iterable.';
    throw new TypeError(msg);
}

Я изменил код на что-то простое:

@Effect()
getHoles$ = this.actions$.pipe(
  ofType<GetTreeHoles>(HolesActions.GetTreeHoles),
  withLatestFrom(of(123)),
  ...

Однако, он все равно возвращает ту же ошибкуи происходит сбой из-за of(123), что для меня не имеет смысла.

Я удаляю строку с withLatestFrom, и эффект работает отлично.

Я дважды проверил, я импортировал с помощью LastFrom правильно.

import { catchError, switchMap, withLatestFrom } from 'rxjs/internal/operators';

Моя версия:

"@angular/animations": "^6.1.10",
"@angular/cdk": "^6.4.7",
"@angular/common": "^6.1.10",
"@angular/compiler": "^6.1.10",
"@angular/core": "^6.1.10",
"@angular/forms": "^6.1.10",
"@angular/http": "^6.1.10",
"@angular/material": "^6.4.7",
"@angular/platform-browser": "^6.1.10",
"@angular/platform-browser-dynamic": "^6.1.10",
"@angular/router": "^6.1.10",
"@ngrx/effects": "^6.1.0",
"@ngrx/router-store": "^6.1.0",
"@ngrx/store": "^6.1.0",
"@ngx-translate/core": "^10.0.2",
"@ngx-translate/http-loader": "^3.0.1",
"core-js": "^2.5.4",
"firebase": "^5.5.3",
"rxjs": "~6.2.0",

Эта ошибка сводит меня с ума.Пожалуйста, помогите мне решить это.Спасибо.

...