如何使用用于增加的相同数字降低价格?

问题描述

用户使用初始价格按下减号图标时,我试图降低价格,但是增加后的新价格是初始价格

quantityHandler: function (action,product) {
      // Increase or decrease quantity of product
      try {
        const newItems = [...this.products]; // clone the array
        let idx = newItems.indexOf(product);
        let currentQty = newItems[idx].productQuantity;
        let price = newItems[idx].unitPrice;

        if (action == "more") {
          newItems[idx].productQuantity = currentQty + 1;
          newItems[idx].unitPrice = price + price;
        } else if (action == "less") {
          newItems[idx].productQuantity = currentQty > 1 ? currentQty - 1 : 1;
          // Decrease current price using the initial price
        }

        this.products = newItems; // set new state
        console.log(this.products);
      } catch (error) {
        alert(error);
      }
    },

解决方法

quantityHandler: function (action,product) {
      // Increase or decrease quantity of product
      try {
        const newItems = [...this.products]; // clone the array
        let idx = newItems.findIndex((item) => { //compare with some unique identifier
         return item.id === product.id
        })
        let currentQty = newItems[idx].productQuantity;
        let price = newItems[idx].unitPrice;
        let perQtyPrice = price / currentQty  //per unit price
        if (action == "more") {
          newItems[idx].unitPrice += perQtyPrice;
          newItems[idx].productQuantity = currentQty + 1;
        } else if (action == "less") {
          if(currentQty > 1) {
           newItems[idx].unitPrice -= perQtyPrice;
           newItems[idx].productQuantity = currentQty > 1 ? currentQty - 1 : 1;
          }
        }

        this.products = newItems; // set new state
        console.log(this.products);
      } catch (error) {
        alert(error);
      }
    },

您需要找到每件商品的价格,然后用它来减去或增加价格

,

您可以使用负数。类似的东西:

newPrice = currentQty * price
newPactionrice = 'less'? newPrice = newPrice * -1
// then add that price... + a negative number will decrease the total