ngrx:如何订阅状态更改中的字段

时间:2018-07-11 12:50:07

标签: angular ngrx

我是ngrx的新手,使用ngrx可以问什么,有什么方法可以订阅状态更改中的一个字段。

假设我的状态为

export interface AppState {
    fieldA: boolean;
    fieldB: string;
};

如果有的话,现在在组件中

this.appState$ = store.select('appState');
this.appState$.subscribe((state) => {
    this.fieldA= state.fieldA;
});

然后,即使fieldB被更改,订阅也会被触发。尽管我可以通过检查fieldA是否更改来过滤它,但是ngrx中是否有内置函数,所以我只能订阅fieldA的更改。

我尝试过

store.select(s => s.fieldA).subscribe((fieldA) => {
    this.fieldA= fieldA;
});

但是,即使fieldA被更改,似乎也未触发此订阅。

谢谢。

1 个答案:

答案 0 :(得分:0)

您应该

store.select('fieldA').subscribe((fieldA) => {
    this.fieldA= fieldA;
});

或者,如果您想更深入一点,应该注意selectors