reactjs - 反应获取购物车中的总金额项目
问题描述
我正在尝试获取购物车中的全部商品。问题在于它只获取购物车中唯一商品的总数量。如果一个项目是重复的,例如有 2 个相同的项目,它不会添加到总项目
这是一个 CodeSandBox 示例: https ://codesandbox.io/s/nextjs-cart-system-tfg1e
我试过在类似的_app.js
东西中添加一个useEffect:
const total = items.cart.reduce((amount, item) => { return amount + item.quantity}, 0)
但我似乎无法让它工作。
这里的任何帮助将不胜感激!
解决方案
您显示cart.items.length
为“总项目”,但这只是单个项目的数量,没有考虑quantity
在内。相反,你可以使用这个:
<span>{cart.items.reduce((accum,item) => accum + item.quantity, 0)}</span>
该reduce
函数将遍历数组items
并汇总所有quantity
值。请参阅此处的文档。
这只是执行此操作的一种简短方法:
let totalItems = 0;
for (const item of cart.items) {
totalItems += item.quantity;
}
console.log("Total Items: " + totalItems);
推荐阅读
- prometheus - 如何使用 Prometheus 监控 traefik 2.1.6
- sql - 根据条件将行抽样到不同的表中
- react-native - 使用 react-navigation 5.0.5 的身份验证流程问题
- laravel - 通过 axio 请求的分页问题
- sql - 需要在hive中查找同一张表的数据差异
- swift - 使用 swift 中的快速操作快捷方式直接转到不同的页面
- python - Python Django-如何在 django 项目中的客户端计算机上下载文件
- java - 具有多个数据源的 Spring Boot @Transactional 属性
- python - SAM:将本地模块导入 lamda 函数
- ffmpeg - 使用 FFMPEG/FFPLAY 播放“aes-256-ctr”加密 DASH 流