NGXS:需要在状态更改时调用方法

时间:2019-05-24 09:46:38

标签: angular ngxs

我想通过将新的状态值传递给该方法来调用该方法。

我正在使用选择器@Select(AccountState.getAccount)account $:可观察;。有没有一种方法可以订阅帐户$,并且在状态更改时可以调用方法?

1 个答案:

答案 0 :(得分:0)

是的,那是微不足道的。

您应该在组件的ngOnInit方法中订阅该状态,然后可以将该状态传递给所需的任何方法。

@Component({
 ...
})
export class MyComponent implements OnInit, OnDestroy {

  @Select(AccountState.getAccount) account$: Observable;
  private accountSubscription: Subscription;



  constructor(...) { ... }


  ngOnInit() {
    this.accountSubscription = this.account$.subscribe(accountState => {
      this.componentMethod(accountState);
    });

  }

  ngOnDestroy() {
    // dont forget to unsubscribe upon component's life cycle end
    // to avoid memory leaks
    this.accountSubscription.unsubscribe();
  }


  componentMethod(accountState) {
    // do something with account state

  }}

}