【发布时间】:2021-10-12 14:41:02
【问题描述】:
我在状态模型中有两个属性,我需要在每个属性上分别设置一个事件,但是当两者同时更改时,我会收到两个事件,我只需要一个类似 ngxsOnChanges 的事件
【问题讨论】:
标签: ngxs
我在状态模型中有两个属性,我需要在每个属性上分别设置一个事件,但是当两者同时更改时,我会收到两个事件,我只需要一个类似 ngxsOnChanges 的事件
【问题讨论】:
标签: ngxs
您可以使用选择器将两者结合起来,然后您将能够订阅此选择器并使用debounce。
【讨论】:
您可以使用 @Selector 装饰器加入多个选择器,但请注意 injectContainerState 选择器选项,该选项在 NGXS v4 中默认禁用(如果您使用 NGXS,最好将其设置为 false v3.x)
然后,您可以订阅组件中的新选择器。
@Selector([ZooState, PreferencesState])
static firstLocalPanda(state: string[], preferencesState: PreferencesStateModel) {
return state.find(
s => s.indexOf('panda') > -1 && s.indexOf(preferencesState.location)
);
}
@Selector([ZooState.firstLocalPanda])
static happyLocalPanda(panda: string) {
return 'happy ' + panda;
}
要了解有关加入选择器的更多信息: https://www.ngxs.io/concepts/select#joining-selectors
【讨论】: