2016-05-17 51 views
1

我看到很多有關使用redux標準化商店的信息。但是當你想要顯示圖表中的數據時,你會做什麼?normalizr在redux後的非規範化實體

我的數據是這樣的 {課程:[{章節:[{分配:[{...等等}]}]}]}

每個實體都有數據我我的手機上。編寫代碼太糟糕了。

我想在頁面上顯示該數據,但我的所有數據都是正常的。此外,ID喜歡爲所有三個實體設置一個容器組件。

這看起來很難做到有和無正常化的REDX。必須有一個建議的方式來處理它。

謝謝

回答

1

您可以使容器接受您需要的數據的Id。容器'連接組件與商店。然後,組件爲兒童商店連接等造成容器..

要通過IDS從商店獲得數據u可以檢查: Javascript Redux - how to get an element from store by id

爲了減少樣板你可以連接部件在同一模塊中,因爲他們沒有與三種查看例如:

https://github.com/reactjs/redux/tree/master/examples/tree-view

顯然您的組件將不會那麼愚蠢了(除了葉組件)。

檢查這個例子太: At what nesting level should components read entities from Stores in Flux?

1

我身邊有這樣的方法是跑,我從終極版國家希望通過反規範化函數的對象。我在mapStateToProps函數中做了這個,然後我把它傳入connect

如果你這樣做在容器級別,那麼你可以挑選什麼完全非標準化的對象,然後部分通過他們props(所以不使用connect,有沒有真正的好處再次反規範化)發送到其他組件。

對於denormalizer函數,您可以使用denormalizr庫。但是,如果你看看source code,實際功能並不是很大,例如,它可能會被修改以適應你的需要,並直接進入Redux狀態。