[英]How do I update state object when an event is emitted from an outside component using ngrx with Angular 6?
[英]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.