javascript - 为什么我从减速器功能收到“NaN”?
问题描述
我正在添加购物车中的数量。我使用钩子 useSelector 将状态从我的 redux 状态中拉出,用于我的购物车中的所有项目,并使用 reduce 将所有数量相加并将它们显示在我的购物车图标中。
const cartItems = useSelector( (state) => state.cart.cartItems)
const itemCount = cartItems.reduce((accumulatedQuantity, cartItem) =>
accumulatedQuantity + cartItem.quantity, 0
)
console.log(itemCount)
这里的项目数是“NaN”
解决方案
可能对于某些 cartItem,数量不是数字。您可以检查 if isNaN() 然后将 cartItem.quantity 添加到累加器中。像这样,
const cartItems = useSelector( (state) => state.cart.cartItems)
const itemCount = cartItems.reduce((accumulatedQuantity, cartItem) =>
{
if(isNaN(cartItem.quantity)) {
return accumulatedQuantity;
}
return accumulatedQuantity + cartItem.quantity;
}, 0
)
console.log(itemCount)
推荐阅读
- c# - 如何将数据分组到自然发生的“箱”中
- php - 如何使用 bitbucket 管道更新网站服务器上的 laravel 供应商文件夹
- python - 开发服务器上的 Djano Windows 身份验证
- javascript - Leaflet Markercluster:从聚类中免除标记
- javascript - 在 angular2 项目中使用 jspdf 导出动态生成的 div 的问题
- jquery - 如何使用 jquery 同时扩展导航栏内容并更改导航栏 text_content?
- android - WebViewClient - 以后操作系统版本的透明背景
- c# - 发送电子邮件后删除 Rotativa pdf ASP.NET MVC 5
- redis - Hangfire.Redis.StackExchange 似乎没有使用 Redis 集群获取作业
- python - 如何使用 Selenium 和 Python 单击选项卡元素