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
        );
      }
    }
  • 相关阅读:
    python-生成器
    python—迭代器
    python—递归函数
    CentOS关闭防火墙
    OpenHCI
    USB电源管理
    USB相关的网络资料
    USB Packet Types
    USB描述符概述
    Core Java Volume I — 1.2. The Java "White Paper" Buzzwords
  • 原文地址:https://www.cnblogs.com/Answer1215/p/12202730.html
Copyright © 2011-2022 走看看