2017-02-21 71 views
1

我有一個要求用戶鍵入一些數字的表單。然後,使用存儲在Redux商店中的這些數字進行一些計算。現在我不會將計算存儲在Redux存儲中,但只需在組件的渲染函數中執行它們即可。如果要在提交請求中提交計算結果,計算應該存儲在Redux商店中?

現在我需要提交的表單將這些計算值包含在我的HTTP請求中。我應該怎麼做呢?我應該讓Redux商店進行計算嗎?

回答

2

如果您計劃在UI中使用原始值和計算值,我可以看到保留在您的Redux商店中的好處。

如果您只需要在進行HTTP請求時使用計算,並且計算的數據未被用作UI的一部分,則更清晰的實現可能是將執行計算的函數分離爲實用程序文件以及導入和使用需要計算的組件/容器或動作文件中的函數。

我認爲這會在每個文件中創建一個更清晰的問題分離,並且如果需要,計算實用程序可以用於多個文件。

// Utility file 
export const calculationFunction = (someParam) => { 
    \\ Calculation here 
    return yourAnswer 
} 

然後

// Actions File (Note this is how my action dispatch is set up, yours might look a bit different 
import { calculationFunction } from 'utilities/calculations'; 

export const sendData = (data) => ({ 
    type: types.SEND_DATA, 
    responseTypes: [types.SEND_DATA_SUCCESS, types.SEND_DATA_FAILURE], 
    promise: (client: any) => client.post('/data', calculationFunction(data)), 
});