我的效果应加载滤镜。第一次,它应该使用apiService加载可能的流派,但是第二次(如果流派在商店中有值)应该从商店加载它们。 另外,如果我已经在商店中拥有releaseDateGte的值,则应该使用它而不是将其传递为空。
@Effect()
genresLoad$: Observable<Action> = this.actions$.pipe(
ofType<LoadFilters>(FilterActionTypes.LoadFilters),
exhaustMap(() =>
this.apiService.getGenres()
.pipe(
map(genres => new LoadFiltersSuccess({genres: genres, releaseDateGte: ''})),
catchError(error => of(new LoadFiltersFail(error)))
))
);
答案 0 :(得分:0)
您的组件应绑定到您的商店。 这样,每次更新时,它都会反映在您的用户界面上。
类似这样的东西:
this.filters = this._store.select(getFilterSelector)
.pipe(
takeUntil(this._ngOnDestroy),
filter((filter) => !!filter)
)
第一次发送后,视图将同步。 没有理由从特效中访问存储并执行NGRX处理程序为您提供的逻辑。
如果您试图避免运行效果,请在分派 LoadFilters 操作之前检查状态。