在我的一个化简器中,我正在执行一些精心设计的逻辑以使用化简器来改变状态。
case Constants.MOVE_PRODUCT:
return {
...state,
products: state.products.reduce((acc, product) => {
// code here
}, [])
};
现在我必须重用此逻辑,想知道如何将其包装到函数中。
此外,如果我要为我的reducer创建特殊功能,那么在我的react redux项目中放置这些类型的helper功能的好地方是什么?
答案 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)
};
对于您的助手功能,这取决于您的项目结构以及组织方式。您可以创建一个助手文件夹,以在其中添加您的助手。没有对与错,某些事情比其他事情更适合您和您的项目。