Получить минимальную и максимальную цену React Hooks

Есть массив с данными в котором есть значение price, пробую получить максимальную и минимальную цену и записать в стейт. Подскажите что я делаю не так...

введите сюда описание изображения


Ответы (1 шт):

Автор решения: doDeploy

Для начала убедитесь, что productsAll не пустой на момент вызова useEffect без зависимостей. Если productsAll у вас формируется не сразу, то в useEffect поставьте зависимость на productsAll

useEffect(()=>{
  if(productsAll){
    const newArr = productsAll.map(({price})=> price)
    setMinPrice(Math.min.apply(Math,newArr))
    setMaxPrice(Math.max.apply(Math,newArr))
  }
},[productsAll])

получится примерно такой код. И console.log(minPrice) или console.log(maxPrice) делать нужно не в useEffect, а вне его. Потому что setMinPrice и setMaxPrice - асинхронные действия

→ Ссылка