创建辅助函数以在我的redux reducer代码中重用以改变状态

时间:2019-01-14 01:24:04

标签: reactjs redux

在我的一个化简器中,我正在执行一些精心设计的逻辑以使用化简器来改变状态。

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

现在我必须重用此逻辑,想知道如何将其包装到函数中。

此外,如果我要为我的reducer创建特殊功能,那么在我的react redux项目中放置这些类型的helper功能的好地方是什么?

1 个答案:

答案 0 :(得分:1)

如您所说,您可以将其简单地包装为以下功能:

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

对于您的助手功能,这取决于您的项目结构以及组织方式。您可以创建一个助手文件夹,以在其中添加您的助手。没有对与错,某些事情比其他事情更适合您和您的项目。