如果要在请求中提交这些计算,计算是否应存储在Redux商店中?

时间:2017-02-21 22:53:02

标签: redux calculation

我有一个表单,要求用户键入一些数字。然后,使用存储在Redux存储中的那些数字进行一些计算。现在我不将计算存储在Redux存储中,而只是在我的组件的render函数中执行它们。

现在我需要提交的表单在HTTP请求中包含这些计算值。我该怎么办呢?我应该让Redux商店保持计算吗?

1 个答案:

答案 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)),
});