在 NGXS 中的其他选择器中重用选择器

Сер*_*гей 4 ngxs

我有两个类 PizzasState 和 ToppingsState。PizzaState 已经有选择器来获取选定的披萨。

@State<PizzaStateModel>({
  name: 'pizzas',
  defaults: initialState
})
export class PizzasState {
  constructor(private pizzaService: PizzasService) {
  }

  @Selector([RouterState])
  static getSelectedPizza(
    state: PizzaStateModel,
    routerState: RouterStateModel<RouterStateParams>
  ): Pizza {
    const pizzaId = routerState.state && routerState.state.params.pizzaId;
    return pizzaId && state.entities[pizzaId];
  }

  @Selector()
  getPizzaVisualized(state: PizzaStateModel): Pizza {
    //
    // what is here?
    //
  }
}
Run Code Online (Sandbox Code Playgroud)

并且 ToppingsState 已选择 Toppings

@State({
  name: 'toppings',
  defaults: initialState
})
export class ToppingsState {
  constructor(private toppingsService: ToppingsService) {
  }

  @Selector()
  static selectedToppings(state: ToppingsStateModel): number[] {
    return state.selectedToppings;
  }
Run Code Online (Sandbox Code Playgroud)

现在我想将我选择的披萨与选定的配料一起加入,并得到我的可视化披萨。

如何正确重用 getSelectedPizza 和 getSelectedToppings ?谢谢

Gar*_*son 5

看起来您需要使用连接选择器

@Selector([ToppingsState.selectedToppings])
getPizzaVisualized(state: PizzaStateModel, selectedToppings: number[]): Pizza {
    // User data from both states.
}
Run Code Online (Sandbox Code Playgroud)