首页 > 解决方案 > 我不明白我们为什么以及如何将一些东西传递给这个函数。选择器问题

问题描述

在 selectCartItemsCount 中我们似乎没有传递一些东西,但它以某种方式知道如何设置 selectCart

 -----------------------SELECTOR--------------------------
    const selectCart = state => state.cart;

    export const selectCartItems = createSelector(
        [selectCart],
        (cart) => cart.cartItems);

    export const selectCartItemsCount = createSelector(
        [selectCartItems],
        cartItems =>
        //non serve fare accomulator = ...
        //perchè lo fai lui automaticamente la dentro
        cartItems.reduce((accomulator, currentItem) => (
            accomulator + currentItem.quantity
        ), 0)
    )

    --------------------------CART ICON-----------------------------
    const mapStateToProps = (state) => {
        return ({
            itemCount: selectCartItemsCount(state)
        })
    }

标签: javascriptreactjs

解决方案


我们使用selectors这样我们就有能力将第一个参数的返回对象作为第二个参数的输入。所以,它知道它正在传递的状态(以树状方式,只有它需要的状态)

 import { createStructuredSelector } from 'reselect'
 const mapStateToProps = createStructuredSelector({
     itemCount: selectCartItemsCount
})

推荐阅读