解析器中的 NGRX 选择器

NGRX selector in resolver

在我的解析器中我有:

export class ComicMainResolver implements Resolve<any> {
  store = new Observable<any>();

  resolve(): Observable<any> {
    return this.store.pipe(select(getItems(CategoryType.Comics, false, 'results')))
      .pipe(
        filter((comic: any) => {
          console.log(comic);
          return comic !== undefined;
        }), first());
  }
}

但它没有解决,甚至不会在过滤器中记录 var

问题在于 store 是一个空的 Observable,相反,您需要注入您的 store 并像这样使用它:

@Injectable({
  providedIn: 'root'
})
export class ComicMainResolver implements Resolve<any> {
  constructor(private store: Store<State>) {}

  resolve(): Observable<any> {
    return this.store.pipe(select(getItems(CategoryType.Comics, false, 'results')))
      .pipe(
        filter((comic: any) => {
          console.log(comic);
          return comic !== undefined;
        }), first());
  }
}