我有一个表单,要求用户键入一些数字。然后,使用存储在Redux存储中的那些数字进行一些计算。现在我不将计算存储在Redux存储中,而只是在我的组件的render函数中执行它们。
现在我需要提交的表单在HTTP请求中包含这些计算值。我该怎么办呢?我应该让Redux商店保持计算吗?
答案 0 :(得分: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)),
});