локальное хранилище - продукция удваивается - PullRequest
0 голосов
/ 25 мая 2020

У меня проблема с моим кодом, я пробовал все, но действительно не знаю, почему он не работает так, как я хочу. Когда я хочу добавить комнату тележки, в первый раз она есть, но когда я снова нажимаю на ту же комнату, число добавляется дважды каждый раз (например, 1, затем 3, затем 5, затем 7 ...).

    for (let i = 0; i < carts.length; i++) {
        carts[i].addEventListener("click", () => {
          cartNumbers(products[i]);
          totalCost(products[i]);
          updateNavCartNumber();
          setItems(products[i]);
        });
      }
      function cartNumbers(product) {
        let treatNumbers = localStorage.getItem("cartNumbers");
        treatNumbers = parseInt(treatNumbers);
        if (treatNumbers) {
          localStorage.setItem("cartNumbers", treatNumbers + 1);
        } else {
          localStorage.setItem("cartNumbers", 1);
        }
        setItems(product);
      }

      function setItems(product) {
        let treatItems = localStorage.getItem("treatsInCart");
        treatItems = JSON.parse(treatItems);

        if (treatItems != null) {
          if (treatItems[product.name] == undefined) {
            treatItems = {
              ...treatItems,
              [product.name]: product,
            };
          }
          treatItems[product.name].incarts += 1;
        } else {
          product.incarts = 1;
          treatItems = {
            [product.name]: product,
          };
        }

        localStorage.setItem("treatsInCart", JSON.stringify(treatItems));
        console.log(treatItems);
      }

      function totalCost(product) {
        let cartCost = localStorage.getItem("totalCost");

        if (cartCost != null) {
          cartCost = parseInt(cartCost);
          localStorage.setItem("totalCost", cartCost + product.price);
        } else {
          localStorage.setItem("totalCost", product.price);
        }
      }
    }


Помогите, пожалуйста.

...