NGXS: необходимо вызвать метод при изменении состояния - PullRequest
0 голосов
/ 24 мая 2019

Я хочу вызвать метод, передав новое значение состояния этому методу.

Я использую селектор @Select (AccountState.getAccount) account $: Observable ;.Есть ли способ, которым мы можем подписать аккаунт $ и при изменении состояния мы можем вызвать метод?

1 Ответ

0 голосов
/ 02 июня 2019

Да, это довольно тривиально.

Вы должны подписаться на состояние в методе 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

  }}

}

...