zoukankan      html  css  js  c++  java
  • [NGXS] Select

    Problem:

    // counter.state.ts
    export interface CounterStateModel {
      counter: number;
    }
    
    @State<CounterStateModel>({
      name: 'counter',
      defaults: {
        counter: 0
      }
    })
    export class CounterState {}
    
    // counter.query.ts
    export class CounterQuery {
      @Selector([CounterQuery.getCounter])
      static getCounterCube(counter: number): number {
        return counter ** 3;
      }
    
      // Note: this selector being declared after its usage will cause an issue!!!
      @Selector([CounterState])
      static getCounter(state: CounterStateModel): number {
        return state.counter;
      }
    
      @Selector([CounterQuery.getCounter])
      static getCounterSquare(counter: number): number {
        return counter ** 2;
      }
    }

    Two ways to solve the problem:

    1. Change the order:

    export class CounterQuery {
      @Selector([CounterState])
      static getCounter(state: CounterStateModel): number {
        return state.counter;
      }
    
      @Selector([CounterQuery.getCounter])
      static getCounterCube(counter: number): number {
        return counter ** 3;
      }
    
      @Selector([CounterQuery.getCounter])
      static getCounterSquare(counter: number): number {
        return counter ** 2;
      }
    }

    2. Using createSelector:

    export class CounterQuery {
      static getCounterCube() {
        return createSelector(
          [CounterQuery.getCounter()],
          (counter: number) => counter ** 3
        );
      }
    
      static getCounter() {
        return createSelector(
          [CounterState],
          (state: CounterStateModel) => state.counter
        );
      }
    
      static getCounterSquare() {
        return createSelector(
          [CounterQuery.getCounter()],
          (counter: number) => counter ** 2
        );
      }
    }
  • 相关阅读:
    摄像头标定GML Camera Calibration
    joda.money.Money
    aop the less note 1
    good notes
    yingyu biji 1
    flowable note1
    activiti note1
    CET4/6
    Web应用界面好帮手!DevExtreme React和Vue组件全新功能上线
    Web UI开发推荐!Kendo UI for jQuery自定义小部件——处理事件
  • 原文地址:https://www.cnblogs.com/Answer1215/p/12202730.html
Copyright © 2011-2022 走看看