使用ngrx中的选择器进行http调用并获取数据

时间:2018-10-24 03:55:02

标签: angular6 ngrx ngrx-store

我是ngrx的新手,正尝试在我的应用程序中实现存储。我遇到了一种情况,例如页面加载时,我正在发出http请求,并尝试从选择器中获取数据。由于http是异步的,并且由于我立即调用了引发错误的选择器方法。

PFB组件代码正在触发负载分配程序,我期望在this.products $

中得到结果
a:visited:after

我的效果

$(a:visited:after).map( (index, elem) => { $(elem).html('bala bala')}

选择器

  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)))
        )
      )
    );

有没有办法解决这个问题?请分享您对此的想法

Tia

1 个答案:

答案 0 :(得分:0)

设置一个空的初始状态可以解决此问题