使用动态 ngrx 选择器或 ngrx 操作以获得更好的性能?

use dynamic ngrx selector or ngrx action for better performance?

我会根据参数从存储中获取数据

我已经创建了选择器,但使用的是静态参数

export const selectSchedulingsTimes = createSelector(
  schedulings,
  (state: ISchedulesState, { time }: { time: string }) => {
    let nowFormat = moment(time, 'HH:mm');
    return state.schedulings.data.filter(elm => {
      let before = moment(elm.tp_org_r, 'HH:mm:ss');
      let after = moment(elm.tp_des_r, 'HH:mm:ss');

      let checkifBetween = nowFormat.isBetween(before, after);

      if (checkifBetween) {
        return elm;
      }
    });
  }
);

然后在我的组件中传递参数

export class LineSynopticComponent implements OnInit, AfterViewInit {

  schedules$ = this.store.pipe(select(selectSchedulingsTimes, { time: '10:34' }));

ngOninit(){
}

因为 schedules$ 没有在 ngOnOnit 中声明,如果我设置一个变量而不是 10:34 它会起作用吗?

是使用 reducer 发送回值更好还是选择器性能更好?

调用带参数的选择器没有问题。只需确保在调用选择器时参数存在即可。我会做这样的事情:

  • 声明您的可观察对象。
  • 调用您的参数可用的选择器,我使用了 onInit,因为这是您提供的唯一内容。

    schedules$: Observable<any> // whatever type it should be returning
    
    ngOninit(){
       this.schedules$ = this.store.pipe(select(selectSchedulingsTimes, { time: '10:34' }));
    }