Предполагая, что вы не хотите / не можете выбрать значение type
в состоянии A, я бы предложил Selector
в состоянии A, которое зависит от значений состояния B.
In состояние A:
@Selector([StateB])
static filterProducts(stateA: StateAModel, stateB: StateBModel) {
return stateA.products.filter(p => p.type === stateB.type);
}
Оно будет переоцениваться при изменении состояния B (или состояния A по умолчанию в текущей версии NGXS). Еще один усовершенствованный способ - иметь селектор типа в состоянии B.
В состоянии B:
static @Selector()
selectedType(state: StateBModel) {
return state.type;
}
Затем использовать этот селектор в состоянии A:
@Selector([StateB.selectedType])
static filterProducts(stateA: StateAModel, selectedType: any) {
return stateA.products.filter(p => p.type === selectedType);
}
Таким образом, селекторы будут срабатывать при изменении состояния, и вам не нужно добавлять дальнейшие действия.