@luxurypluxury

Почему не берется id товара при удалении его с корзины?

Я сверстал магазин кроссовок и при нажатии кнопки на товаре, эти кроссовки переносятся в корзину и хранятся на бэке.
Когда я хочу удалить товар из корзины то выдаёт ошибку в консоли
63ab4d96d8c7b738676882.png
Но когда я перезагружаю страницу, всё нормально удаляется из бэка и из корзины на фронте.
В чём может быть дело?

Вот функция которая на onClick кнопки удаления товара с корзины повешена:
const onRemoveItem = (id) => {
    axios.delete(`https://(не смотри на мое апи).mockapi.io/cart/${id}`);
    setCartItems((prev) => prev.filter((item) => item.id !== id));
  }
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
Kwinston
@Kwinston
Fullstack Web3 Developer
Но когда я перезагружаю страницу, всё нормально удаляется из бэка и из корзины на фронте.

Это очень странно что с бэка удаляется, поскольку ты отправляешь некорректный запрос, это можно понять по его URL, вместо id передается undefined. Я бы еще проверил, а добавляется ли товар вообще в БД на бэке

Вот функция которая на onClick кнопки удаления товара с корзины повешена:

Я бы рекомендовал улучшить эту функцию следующим образом:
const onRemoveItem = async (id) => {
    try {
        await axios.delete(`https://(не смотри на мое апи).mockapi.io/cart/${id}`);
        setCartItems((prev) => prev.filter((item) => item.id !== id));
    } catch (error) {
        /* уведомлять пользователя об ошибке или логировать ее как-нибудь */
    }
  }

Тем самым мы для начала ждем ответа сервера а потом уже в случае успешного ответа сервера, удаляем карточку товара на фронт.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы