Выполнение http-вызова и выборка данных с помощью селекторов в ngrx - PullRequest
0 голосов
/ 24 октября 2018

Я новичок в ngrx и пытался реализовать магазин в моем приложении.Я столкнулся с одним сценарием, как при загрузке моей страницы, я делаю http-запрос и пытаюсь получить данные из селектора.Поскольку http является асинхронным, и так как я немедленно вызываю метод селектора, который выдает ошибку.

Код компонента PFB, который запускает диспетчер загрузки, и я ожидал результатов в this.products $

  ngOnInit() {

    this.store.dispatch(new productActions.Load());
    this.products$ = this.store.pipe(select(fromProducts.getProducts));
    that.initForms();
  }

Мои эффекты

  @Effect()
    loadProducts$: Observable<Action> = this.actions$.pipe(
      ofType(productActions.productActionTypes.Load),
      mergeMap(action =>
        this.productService.getProductData().pipe(
          map(products=> (new productActions.LoadSuccess(products))),
          catchError(err => of(new productActions.LoadFail(err)))
        )
      )
    );

Селектор

export const getProducts = createSelector(
    getProductFeatureState,
    state => state.products
);

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

ERROR TypeError: Cannot read property 'products' of undefined

Есть ли способсправиться с этим?Пожалуйста, поделитесь своими мыслями об этом

Тиа

1 Ответ

0 голосов
/ 17 ноября 2018

Установка пустого начального состояния исправила проблему

...