簡體   English   中英

使用ngrx時如何重新初始化Angular中的組件或整個應用程序?

[英]How Do I reinitialize components or entire app in Angular when using ngrx?

我有一個包含他們當前語言的用戶 State。 單擊下拉菜單時,語言會更新,用戶 state 語言也會更新。 父組件(頁面)包含語言邏輯,我們有一個通過調用 userStore 選擇器設置的 Observable。 現在,所有存儲操作都在相應組件的 ngOnInit 中調度。 我可以看到隨着語言變化而更新的數據; 但是,我想發送一個關於語言更改的操作。 我該怎么做呢?

我正在設置這樣的語言:

    this.language$ = this.userStore.pipe(
  select(fromUser.getUserPreferredLanguage),
  map(lang => {
    return isNullOrEmpty(lang) ? "en" : lang;
  })
);

我想做類似的事情

OnLanguageChange(){this.store.dispatch(action)}

並將其級聯到子組件-因此它們也重新初始化

我不確定我是否了解您的架構以及您想要實現的目標。 但是如果你想在每次你的language observable觸發時調用一個方法,你可以使用tap運算符( https://rxjs-dev.firebaseapp.com/api/operators/tap ):

this.language$ = this.userStore.pipe(
  select(fromUser.getUserPreferredLanguage),
  map(lang => {
   return isNullOrEmpty(lang) ? "en" : lang;
  }),
  tap(lang => this.OnLanguageChange(lang))
);

暫無
暫無

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

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