Почему 1 элемент Stat'а пустой?
есть такой код
const [item, setItem] = useState({
id: null, name: "", price: "", weight: ""
})
const [cart, setCart] = useState([])
const addToCart = (id, name, price, weight) => {
setItem({item, id:id, name:name, price:price, weight:weight})
setCart(cart => [...cart, item])
}
При клике на товар добавляю его в cart, а сам cart методом map вывожу в боковой панели. Есть проблема что при нажатии на продукт в cart 1 элементов встает item с Default значениями что я задал для InitialState item
Ответы (1 шт):
Автор решения: Евгений Платов
→ Ссылка
после вызова setItem item обновится асинхронно (после завершения всех синхронных функций), поэтому в setCard улетает старое значение (Использование функции не поможет). Надо так делать.
const addToCart = (id, name, price, weight) => {
const itm = {id, name, price, weight};
setItem(itm);
setCart([...cart, itm]);
}