问题描述
有没有办法(或者甚至合适)将参数传递给@ ngrx / component-store选择器?我对组件存储感到兴奋,因为 effects 和 updaters 可以将Observable作为参数。这意味着Observable不必在组件中订阅。但是似乎没有一种方法可以将Observable用作选择器的参数。
解决方法
char* BuildTree(int index,char ITEM){
char input;
if(index != 0){
A[index] = ITEM;
cout<<"Node "<< ITEM <<" has left sub-tree ? Y/N";
cin>>input;
if (input == 'Y' || input == 'y'){
cout<<"Enter New ITEM ";
cin>>input;
BuildTree(2*index,input);
}
else{
BuildTree(0,'\0');
}
cout<<"Node "<< ITEM <<" has right sub-tree ? Y/N";
cin>>input;
if(input == 'Y' || input == 'y'){
cout<<"Enter New ITEM ";
cin>>input;
BuildTree(2*index + 1,'\0');
}
}
return A;
}
我仍然想知道如何在修改 movieId 或状态时将 movieId 作为Observable传递并从选择器返回值。
,以一个of the signatures来判断:
select<R,S1>(
s1: Observable<S1>,projector: (s1: S1) => R,config?: SelectConfig
): Observable<R>;
我认为您可以通过执行以下操作来实现所需的目标:
select(observable1$,() => {})
您可以使用多个可观察项,只要最后一个参数(按此顺序)是projectioFn
和configObject
或仅是projectionFn
。
我试图做的是将Observable作为参数传递给选择器,并在参数或状态发生变化时返回Observable。我想我确实可以使用它。这是代码段
readonly widgets$: Observable<Widget[]> = this.select(state => state.widgets);
widgetsByColor2$(color$: Observable<string>) {
return combineLatest(color$,this.widgets$).pipe(
tap(([color,widgets]) => {
console.log('color:',color);
console.log('widgets:',widgets);
),map(([color,widgets]) => widgets.filter(widget => widget.color == color))
);
}
,
您可以创建selectors that take parameters:
this.store
.select(t => widgetsByColor(t,{ color: 'blue' }))
.subscribe(t => {
...
}
)
像这样使用:
kernel1 = np.diag(np.exp(-scale*eigen_values))
kernel2 = np.exp(-scale*np.diag(eigen_values))
不建议将可观察变量作为参数(尽管可以),因为它会阻碍Memoization的优化。