2017-02-21 22 views
1

У меня есть форма, которая просит пользователя ввести некоторые цифры. Затем некоторые вычисления производятся с использованием тех чисел, которые хранятся в хранилище Redux. Сейчас я не храню вычисления в хранилище Redux, а просто делаю их внутри функции рендеринга моего компонента.Должны ли расчёты храниться в магазине Redux, если они должны быть отправлены в запрос?

Теперь мне нужна заявленная форма, чтобы включить эти рассчитанные значения в мой HTTP-запрос. Как мне это сделать? Должен ли я сделать хранилище Redux для проведения расчетов?

ответ

2

Если вы планируете использовать необработанные значения, а также рассчитанные значения в пользовательском интерфейсе, я вижу преимущество в том, чтобы хранить как внутри вашего магазина redux.

Если вам нужно использовать расчет при выполнении запроса HTTP, а рассчитанные данные не используются как часть пользовательского интерфейса, более чистая реализация может заключаться в том, чтобы отделить функцию, которая вычисляет в утилите файл, а также импортировать и использовать функцию в файле компонента/контейнера или действий, который необходим для расчета.

Я думаю, что это создаст более четкое разделение проблем в каждом файле, и утилита вычисления может быть использована в нескольких файлах, если это необходимо.

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