Нужна помощь с .reduce
Это фрагмент кода который отвечает за отображение общай суммы
<div className={s.total}><b>Total</b></div>
{this.state.products.map((products) => (
value.state.cartItems.map((item) =>( products.id === item ?
products.prices.map((prices) => (
<div>
<div className={s.praceTotal}>{value.state.selectValue.slice(0, -4) === prices.currency.symbol ? prices.currency.symbol + " " + (products.prices.reduce((acc, price) => {
return acc + price.amount
}, 0) * this.state.quantity).toFixed(3).slice(0, -1) : null } </div>
</div>
))
: null)) ))}
Я буду описывать построчно что код делает
Total **- Просто выводет Total**{this.state.products.map((products) => ( - Раскрываю массив products что бы добраться до prices
value.state.cartItems.map((item) =>( products.id === item ? value.state.cartItems - это информация о id товара по которому сделан клик я передаю через context, а так как это массив мне его нужно достать через map. Далее тернарное выражение с сравнением id товара и id клика.
products.prices.map((prices) => ( - раскрываю массив prices
value.state.selectValue.slice(0, -4) === prices.currency.symbol - это сравнивает какая валюта сейчас установлена на сайте
? prices.currency.symbol + " " + (products.prices.reduce((acc, price) => { return acc + price.amount}, 0) * this.state.quantity).toFixed(3).slice(0, -1) - Вывод символа валюты который установлен на сайте и общая сумма всех добавленых товаров в корзину (Сейчас это не так)
: null - если условие не верное , то возрат null