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
        );
      }
    }
  • 相关阅读:
    二项式定理与组合恒等式
    「CEOI2020」象棋世界 题解
    矩阵 题解
    研一总结
    你明白transform中的skew属性是何如变换的吗?
    pip安装包
    Yaml中特殊符号"| > |+ |-"的作用
    使用ROOT用户运行Jenkins
    检查MySQL主从复制运行状态
    powerdesigner 怎么逆向生成 pdm文件
  • 原文地址:https://www.cnblogs.com/Answer1215/p/12202730.html
Copyright © 2011-2022 走看看