2016-08-23 32 views
0

在使用React Redux框架編寫工程應用程序時,我們遇到了一個產品數據庫的問題,該數據庫具有處理其負載能力和其他屬性的函數的數據庫。我知道將功能加載到商店並從減速器中的其他位置檢索功能會打破純度並使減速器難以測試成爲一個好主意。以數學公式爲函數的Redux商店

他們的任何React Redux方式爲減速器提供產品功能數據庫作爲參數或類似的數據,而無需將它們放入存儲區並且不破壞純度?

編輯:

每款產品都有可能例如描述插口擴展和負載能力之間的關係的功能。這種關係通常是非線性的,並且有一個圖表,它將把容量與其可擴展範圍聯繫起來。我們已經使用曲線擬合工具將這些圖表與其範圍內的函數進行匹配。我希望能夠在減速器中使用這些功能,以便當有人選擇產品和擴展時,我們可以獲得容量,並檢查其與狀態中其他計算負載的適用性。

+0

你能描述一下你的用例的細節嗎?如果你有一些通用的幫助函數,我認爲它是一種「單一來源」。但是,如果每個數據庫記錄都有獨特的功能,那不是一個好主意。 – darkbaby123

回答

1

的一點想法:

+0

當前考慮選項2.我最初猶豫不決,因爲它會使reducer不純,但我後來意識到,如果我將功能數據庫curry到reducer中,那麼它仍然是可測試的,而不是不純?像'createStore(reducerWithDatabase(productDatabase))'''。 'var reducerWithDatabase =(productDatabase)=>(state,action)=> state' – Adam

+0

這是一種方法,我想。也就是說,使用reducer函數將其他函數作爲過程的一部分調用並不會使其變得「不純」,只要這些函數本身是純粹的並且沒有副作用。數學函數看起來很可能是純函數,所以叫他們做工作應該沒問題。 – markerikson