如何将参数传递给@ ngrx / component-store选择器?

问题描述

有没有办法(或者甚至合适)将参数传递给@ 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$,() => {})

您可以使用多个可观察项,只要最后一个参数(按此顺序)是projectioFnconfigObject或仅是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的优化。