[英]Why am I receiving 'NaN' from my reducer function?
我正在添加購物車中的數量。 我使用鈎子 useSelector 將 state 從我的 redux state 拉出我的購物車中的所有物品,並使用 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)
似乎您的cartItem.quantity
可能不是數字格式:試試這個:
const cartItems = useSelector( (state) => state.cart.cartItems)
const itemCount = cartItems.reduce((accumulatedQuantity, cartItem) =>
accumulatedQuantity + Number(cartItem.quantity), 0)
console.log(itemCount)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.