2017-07-26 28 views
0

如何決定一個組件是否應該有自己的reducer函數,或者委託給一個祖先組件?如何決定組件是否應具有自己的減速功能?

例如:

我有一個HomePage組件與網頁時通過路由器訪問與該商店註冊的減速功能。

HomePage部件在其內包含一個Grid組件的一個實例。

<div> 
    <Grid contents={contents} /> 
</div> 

Grid組件需要重新計算時,視口被調整它使用的列數,所以我加入一個名爲UPDATE_COLUMN_COUNTGrid相關的動作。

調用此操作的調用綁定到 resize事件onComponentDidMountGrid

對於Grid,我應該在哪裏註冊它與商店減速?

我應該註冊它手動在路由器(與HomePage減速機的現有登記一起)?

我應該以某種方式與減速機Grid結合減速器HomePage

或者我應該回應HomePage減速機中的UPDATE_COLUMN_COUNT動作,並且沒有該組件的減速機?

回答

1

就我個人而言,我會使用本地組件狀態而不是存儲在我的Redux存儲中。這是一個純粹的顯示問題,不會影響任何其他組件,所以我不想讓代碼複雜化。

如果可以通過各地不同的組件應用程序使用此列數,那麼你可能希望把它在終極版狀態。

一般來說,應用程序的狀態應該從鬆散您使用的組件,即你不要試圖組件映射到減速器耦合的。相反,您可以通過組合縮減器併爲每個組件選擇相關部件來創建相關的應用程序狀態。

相關問題