如何在NgRx中选择多个状态

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在NgRx中选择多个状态相关的知识,希望对你有一定的参考价值。

@Injectable()
export class UsersResolver implements Resolve<any> 

loading = false;

constructor(private store: Store<AppState>)  
resolve(route: ActivatedRouteSnapshot,
  state: RouterStateSnapshot): Observable<any> 
    return this.store
    .pipe(
      select(isUserLoaded),
      tap(userLoaded => 
        if (!this.loading && !userLoaded) 
          this.loading = true;
          this.store.dispatch(loadingUsers(
            pagination:  // **Here i want to get my pagination details from selectUserPagination state**
          ));
        
      ),
      filter(userLoaded => userLoaded), // only proceed further only in case of coursesLoaded is true
      first(), // Wait for first observable to get values or error
      finalize(() => this.loading = false) // Runs in last
  );
 

因此要选择我的userPagination状态并将其分派到loadUsers动作中。

如何将多个选择添加到此解析器,然后分派该操作?

答案

您可以使用withLatestFrom来获取状态的另一部分:

另一答案

您可以尝试combineLatest

以上是关于如何在NgRx中选择多个状态的主要内容,如果未能解决你的问题,请参考以下文章

@ngrx 在递归使用智能组件时从存储中选择特定的状态片

在单元测试中:如何覆盖由 entityAdapter.getSelectors() 创建的 NGRX 选择器

Ngrx Store 在浏览器刷新后重置。如何让应用保持状态?

如何同时调度多个 ngrx 动作

NGRX - 如何在 Angular 防护中访问我的应用程序状态?

如何删除ngrx中以前的存储状态?