代码之家  ›  专栏  ›  技术社区  ›  Blankman

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

  •  0
  • Blankman  · 技术社区  · 7 年前

    在我的一个减速器中,我正在执行一些复杂的逻辑,使用减速器来改变状态。

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

    现在我不得不重新使用这个逻辑,我想知道如何将它包装成一个函数。

    此外,如果我正在为我的简化程序创建特殊函数,那么在我的react redux项目中放置这些类型的辅助函数的好位置是什么?

    1 回复  |  直到 7 年前
        1
  •  2
  •   aquilesb    7 年前

    正如您所说,您可以简单地将其包装成如下函数:

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

    对于助手功能,这取决于项目结构和组织方式。你可以创建一个助手文件夹,将你的助手添加到那里。没有错与对,有些东西比其他东西更适合你和你的项目。