2016-10-23 19 views
0

我在我的陣營,終極版的應用程序的簡單需求,我想找到對付的「終極版的方式」:終極版粘或時間記憶選擇

的第一次應用程序運行時,一些隨機的數據生成並傳遞爲initialState,並在整個應用程序的執行過程中,我使用redux動作調度程序和狀態更改來處理該數據。

但是,我需要根據我的mapStateToProps函數中的第一個接收狀態計算一些派生數據,並在應用程序執行結束時使用它。如果派生數據必須根據每個狀態變化進行更新,那麼這很容易,但技巧是我只需要計算一次並在整個應用程序執行過程中記住它。

派生數據不是應用程序狀態的邏輯部分,所以我不想打擾使它成爲商店的一部分。我可以使用一個簡單的全局變量來保存這些數據,並避免在稍後重新計算它,但我幾乎可以肯定這不是'最簡單的方式'!使用selectors似乎也不是答案,因爲它會在每次狀態更改時重新計算派生數據。我也研究過React context,但由於我不想立即將數據發送到組件,它似乎也不是我所需要的。

有什麼建議嗎?

回答

1

您應該將其存儲在Redux中。也許它只會被修改一次,但它仍然是應用程序狀態。

請注意,可以從當前應用程序狀態派生的任何內容都應該使用選擇器「即時」計算。

通過使用Reselect您不必擔心性能問題(除非派生需要很長時間並且需要WebWorkers)。

+0

感謝您輸入@DDS我目前正在重寫我的應用程序以包含此狀態,但是,派生數據主要是爲了表示目的,而不是應用程序的概念部分。總而言之,我同意目前在我看來,將它擠入我的redux商店似乎是最直接的非反模式解決方案,只是想知道別人會怎麼想 –