Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何链接多个ngrx选择器?_Angular_Rxjs_Ngrx - Fatal编程技术网

Angular 如何链接多个ngrx选择器?

Angular 如何链接多个ngrx选择器?,angular,rxjs,ngrx,Angular,Rxjs,Ngrx,我在index.ts文件中有3个选择器 export const selectDetails=createSelector( //一些代码 ); export const selectTransactionResponse=createSelector( //一些代码 ); export const selectAdditionalDetails=createSelector( //一些代码 ); 这些选择器在各自使用的组件中工作。我有一个用例,我需要在一个新组件中包含所有这些信息,为此我编写

我在index.ts文件中有3个选择器

export const selectDetails=createSelector(
//一些代码
);
export const selectTransactionResponse=createSelector(
//一些代码
);
export const selectAdditionalDetails=createSelector(
//一些代码
);
这些选择器在各自使用的组件中工作。我有一个用例,我需要在一个新组件中包含所有这些信息,为此我编写了以下选择器

export const selectSnapshotData=createSelector(
选择详细信息,
选择TransactionResponse,
选择其他详细信息,
(详细信息、交易响应、附加详细信息)=>({
其他详细信息,
细节,
事务响应
}作为快照数据)
);
现在,当我在新组件中使用此选择器时,如下所示:

this.store.pipe(
选择(从详细信息。选择快照数据),
过滤器(快照数据=>!!快照数据),
takeUntil(this.destroy$).subscribe(快照数据=>{
log(“让我们看看记录了多少次”);
console.log(快照数据);
});
subscribe中的代码执行3次,每次在存储中加载每个信息时执行一次

我想让这个方法在所有信息都可用时执行一次。为此,我尝试在组件中使用forkjoin,而不是在index.ts中编写自定义选择器,但这也不起作用


那么有没有办法做到这一点呢?

首先,欢迎来到Stackoverflow

考虑引入一个IF语句,验证所有所需数据是否可用,如下所示:

export const selectSnapshotData=createSelector(
选择详细信息,
选择TransactionResponse,
选择其他详细信息,
(详细信息、交易响应、附加详细信息)=>{
if(详细信息和交易响应和附加详细信息){
返回{
其他详细信息,
细节,
transactionResponse,
}作为快照数据;
}
}
);
可选择使用
跳过
运算符:

this.store.pipe(
选择(从详细信息。选择快照数据),
跳过(2),
takeUntil(这个.destroy$),
).subscribe(快照数据=>{
log(“让我们看看记录了多少次”);
console.log(快照数据);
});

首先,欢迎来到Stackoverflow

考虑引入一个IF语句,验证所有所需数据是否可用,如下所示:

export const selectSnapshotData=createSelector(
选择详细信息,
选择TransactionResponse,
选择其他详细信息,
(详细信息、交易响应、附加详细信息)=>{
if(详细信息和交易响应和附加详细信息){
返回{
其他详细信息,
细节,
transactionResponse,
}作为快照数据;
}
}
);
可选择使用
跳过
运算符:

this.store.pipe(
选择(从详细信息。选择快照数据),
跳过(2),
takeUntil(这个.destroy$),
).subscribe(快照数据=>{
log(“让我们看看记录了多少次”);
console.log(快照数据);
});