Создание вспомогательных функций для повторного использования в моем коде редуктора для изменения состояния - PullRequest
0 голосов
/ 14 января 2019

В одном из моих редукторов я выполняю некоторую сложную логику для изменения состояния с помощью редуктора.

case Constants.MOVE_PRODUCT:      
  return {
    ...state,
    products: state.products.reduce((acc, product) => {
          // code here
        }, [])
    };

Теперь я должен снова использовать эту логику, и мне интересно, как я могу обернуть это в функцию.

Кроме того, если я создаю специальные функции для своих редукторов, что может быть лучше, если я добавлю эти вспомогательные функции в мой проект Reaction Redx?

1 Ответ

0 голосов
/ 14 января 2019

Как вы сказали, вы можете просто обернуть это в функцию вроде:

//-------OPTION 1

//on helper file
function doStuff = (acc, product){
  //logic here
  return newProductsList;
}

//on reducer file
import {doStuff} from '../helpers/myHelper'
case Constants.MOVE_PRODUCT:      
  return {
    ...state,
    products: state.products.reduce((acc, product) => doStuff, [])
    };




//-------OPTION 2

//on helper file
const doAnotherStuff = (products) => products.reduce((acc, product) => {
 //logic here
},[]);


//on reducer file
import {doAnotherStuff} from '../helpers/myHelper'
case Constants.MOVE_PRODUCT:      
  return {
    ...state,
    products: doAnotherStuff(state.products)
 };

Для ваших вспомогательных функций это будет зависеть от структуры вашего проекта и от того, как вы его организуете. Вы можете создать вспомогательную папку, чтобы добавить туда своих помощников. В этом нет ничего плохого и правильного, что-то может подойти лучше для вас и вашего проекта, чем для других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...