2017-02-16 47 views
0

如果動作創建者想要修改兩個組合的減速器狀態, 那麼,什麼是更好的:組合減速器最佳實踐

  1. 動作創建者調度兩種動作類型?
  2. 動作創建者分派一個動作類型,兩個reducer聽這個動作?
  3. 當我無法向Reducer訂閱動作時(即反應路由器的縮減器),我唯一的解決方案是分發我的reducer動作,然後分配動作創建者的結果(即響應路由器的推動或替換)作爲使用thunk或傳奇的副作用

你們認爲什麼?

+1

「兩國」這句話令人困惑。一個商店只有一個國家。你是指狀態樹的兩個屬性?或者你的應用有兩個商店? –

+0

我通常會和#2一起去,除非以後再推理會很混亂。但是,這*可能表示您沒有正確劃分減速器。 –

回答

1

兩者都是可行的方法。 Redux常見問題解答"Should I dispatch multiple actions in a row from one action creator?"

一般來說,詢問這些操作是相關但獨立的,還是實際上應該表示爲一個操作。對自己的情況做些有意義的事情,但試着平衡減速器的可讀性和動作日誌的可讀性。例如,包含整個新狀態樹的操作將使您的reducer成爲一行,但缺點是您現在沒有關於變化發生的原因的歷史記錄,所以調試變得非常困難。另一方面,如果你在一個循環中發出動作以保持細化,這表明你可能想要引入一個以不同方式處理的新動作類型。

我也在我的文章Idiomatic Redux: Thoughts on Thunks, Sagas, Abstraction, and Reusability中談到了這個話題。