javascript - 我不明白我们为什么以及如何将一些东西传递给这个函数。选择器问题
问题描述
在 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)
})
}
解决方案
我们使用selectors
这样我们就有能力将第一个参数的返回对象作为第二个参数的输入。所以,它知道它正在传递的状态(以树状方式,只有它需要的状态)
import { createStructuredSelector } from 'reselect'
const mapStateToProps = createStructuredSelector({
itemCount: selectCartItemsCount
})
推荐阅读
- cpanel - 当我遇到一些电子邮件问题时如何配置 WHM 服务器
- php - 电子邮件进入收件箱,但显示垃圾邮件
- mysql - MySQL:检查一列是否具有基于另一列的值
- html-table - Gmail 在我的 HTML 签名的第一行之后的行上添加 STRANGE 填充
- php - 从我的数据库中获取个人资料图片以显示在 php 页面上
- javascript - Laravel FatalErrorException:内存不足
- c - 如何修改 SYN/ACK 数据包的 IP 标头选项?
- dynamics-crm - CRM OnPrem--> Plugin--> Connect to External (SOAP) Webservice Error with connection
- javascript - 类型 [] 中缺少 JavaScript 类型脚本属性 0
- php - 将php foreach放入带有空格的单个变量逗号分隔字符串