因此,我是React的新手,我正在尝试构建一个简单的购物应用程序。我也在使用Redux商店和Saga。我有两个减速器。
具有以下初始状态的productsReducer
:
const initState = {
products: [],
loading: false
}
我正在通过products
API调用将产品数据加载到get
数组中。
我有另一个称为cartReducer
的减速器,它具有以下初始状态,并且必须实现并“添加到购物车”操作:
const initState = {
loading: false,
cartItems: [],
cartCount: 0
}
添加到购物车的代码是:
case 'ADD_TO_CART':
let addedItem = state.products.find(product => product.id === action.id)
// products array contained list of products
let existed_item = state.cartItems.find(product => action.id === product.id)
if (existed_item) {
existed_item.quantity += 1
return {
...state,
cartItems: state.cartItems,
cartCount: state.cartItems.length,
}
} else {
let newItem = Object.assign({}, addedItem);
newItem.quantity = 1;
return {
...state,
cartItems: [...state.cartItems, newItem],
cartCount: state.cartItems.length,
}
}
我将两个减速器组合如下:
const rootReducer = combineReducers({
cartReducer,
productsReducer
})
export default rootReducer;
最初,我在一个地方同时执行了两个reducer的动作,因此可以在products
函数中访问ADD_TO_CART
数组。但是,既然我已将动作分成单独的化简器,我不知道如何从products
内部的productsReducer
访问cartsReducer
数组。
有人可以帮忙吗?