reactjs - 如何减少 react.js 和 node.js 中的数量

react.js 正如您在 react 代码中看到的那样,我正在尝试减少数量,但在 react 中我很难做到这一点。我想要的是如果单击按钮,那么数量应该减少 1。我想我是

const [quantity, setQuantity] = useState(0)

const handleDelivery = event => {
  event.preventDefault();

  const deliveryInventoryItem = inventoryItem.quantity(quantity-1);

  const url = `http://localhost:5000/inventoryItem/${inventoryItemId}`;

  fetch(url, {
    method: 'PUT',
    headers: {
      'content-type': 'application/json'
    },
    body: JSON.stringify(deliveryInventoryItem)
  })
    .then(res => res.json())
    .then(data => {
    console.log('success', data);
    alert('users added successfully!');
    event.target.reset();
    setQuantity(data)
  })

}

node.js

app.put('/inventoryItem/:id', async (req, res) => {
  const id = req.params.id;

  const deliveryInventoryItem = req.body;
  console.log(id, updatedInventoryItem);
  const filter = {_id: ObjectId(id)};
  const options = {upsert: true};
  const updatedDoc = {
    $set: {
      quantity: deliveryInventoryItem.quantity
    }
  };
  const result = await inventoryItemCollection.updateOne(filter, updatedDoc, options);
  res.send(result);

})

回答1

在 mongoDB 中,使用 $inc 来增加或减少数量,查看更多:https://db.products.updateOne(%20%20%20%20%7B%20sku:%20%22abc123%22%20%7D,%20%20%20%20%7B%20$inc:%20%7B%20quantity:%20-2,%20%22metrics.orders%22:%201%20%7D%20%7D%20)

在 React 应用程序中:

const quantityChange = -1 // If you want decrease 1 by 1 or any number you want increase or decrease by this number
fetch(url, {
  method: 'PUT',
  headers: {
    'content-type': 'application/json'
   },
  body: JSON.stringify(quantityChange)
}).then().catch()
...

在 Nodejs App 中,编辑您的 updatedDoc:

const { quantityChange } = res.body
const updatedDoc = {
    $inc: {
      quantity: quantityChange
    }
  };

相似文章

c - 无法删除C中双向链表的重复数据

我在从双向链表中删除重复数据时遇到问题。所以这个列表的data元素是一个数字数组。我想用这个delete_duplicates代码删除重复数据的节点。我使用以下print_list函数来打印列表。该函...

随机推荐

最新文章