Очень грубый пример будет следующим:
const getProducts = (state) => state.products;
const getCart = (state) => state.cart;
const getProductId = (state, props) => props.productId;
const getLineItem = createSelector(
[getProducts, getCart, getProductId],
(products, cart, productId) => ({
accumulatedPrice: cart[productId].quantity * products[productId].price,
id: productId,
image: products[productId].image,
price: products[productId].price,
quantity: cart[productId].quantity || 0
})
)
Вы также можете уточнить это, если хотите, и иметь getCartProduct
(в сочетании с getProductId
), а также getProduct
(снова в сочетаниис getProductId
), но это должно служить начальным блоком.