2017-02-27 19 views
0

我在頁面上有兩個組件,一個更新用戶窗體和事件的歷史記錄。他們由兩個減速器(用戶和事件)代表。我想在用戶更新後更新商店中的事件列表(通過調用API)。但是,只有事件組件位於頁面上時,才應更新事件。Ngrx更新減速器,如果組件在頁面上

達到此目的的最佳方法是什麼?我喜歡這個想法的唯一解決方案是在窗體/事件組件的父項中擁有一個成功處理程序,該組件會分派一個被某個效果捕獲的動作,然後該效果將刷新事件列表。我希望這是我可以完全實現的效果,但我顯然不知道組件是否在頁面上,而且我也需要訪問路由參數。有沒有人有更好的解決方案或可以看到這個解決方案的問題?

+0

用您的事件組件的'ngOnInit'鉤子向您的商店發送一個動作,該動作組件在您的狀態下設置'canUpdate'標誌。如果該組件被銷燬,則將canUpdate標誌再次設置爲false。 – cyrix

回答

1

典型地,該活動部件在屏幕上所示的事實表示某種「業務邏輯/過程」,這是可能的一部分已經表示在商店狀態。如果不是這種情況,您似乎需要以某種方式添加它,並在組件初始化(ngOnInit)並銷燬(ngOnDestroy)時更新它。

一旦它是商店的一部分,您可以使用它作爲效果的一部分。