簡體   English   中英

如何將 BehaviorSubject 與 Observable 一起使用

[英]how to use BehaviorSubject with Observable

我有一個 div,需要添加屬性取決於商店結果。 商店按預期工作,當我單擊某個 div 時,它的值發生了變化(返回truefalse ),並且在我的組件中我需要獲取更新的值,但是當我在ngOnInit中調用它時,它只工作一次而不更新。 我已經閱讀了有關BehaviorSubject的信息,但不明白如何正確地將我的 observable 轉換為它。 將不勝感激任何幫助!

這是我的代碼

html

<div class="details__header" [attr.isOpened]="isOpened ? 'opened' : 'closed'">

ts

isOpened: boolean;

constructor(private store: Store<AppState>) { }

ngOnInit(): void {
  this.store.select(selectSearchResultState).subscribe(el => this.isOpened = el);
}

我已經在 html 中嘗試了async pipe 並且它可以工作,但是我需要在我的代碼中使用這個變量,所以這對我不起作用

您應該像這樣將isOpened定義為 Observable:

isOpened$: Observable<boolean>;

constructor(private store: Store<AppState>) { }

ngOnInit(): void {
  this.isOpened$ = this.store.select(selectSearchResultState);
}

然后在帶有異步 pipe 的模板中使用它:

<div class="details__header" [attr.isOpened]="(isOpened$ | async) ? 'opened' : 'closed'">

此處的文檔中有更多關於 observables 的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM