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



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

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

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

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

正如你所说,你可以简单地将其包装成一个函数,例如:

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

对于帮助程序函数,这取决于项目结构及其组织方式。您可以创建一个帮助程序文件夹以在其中添加帮助程序。没有错和对,有些东西可能更适合你和你的项目而不是其他人。

最新更新