簡體   English   中英

React hooks - 從數組中刪除多對象並更新狀態

[英]React hooks - Remove multi object from array and update state

如何刪除數組的多個對象並更新狀態? 我從復選框中選擇了多個項目 這是選定的項目 [5, 4, 3] 我想根據 id 刪除數組中的所有項目並更新狀態 這是我的代碼

 const [products, setProducts] = useState();

 const DeleteProducts = () => {
  const selectedItems = [5, 4, 3];

    selectedItems.forEach(function(p) {
      setProducts(products.filter(prd => prd.id !== p));
    });
}

它一次只刪除一項,但我選擇了 3 項。 如何在產品狀態中顯示除 3 個選定項目之外的剩余項目? 謝謝

您可以將其簡化為單個過濾器功能:

const DeleteProducts = () => {
  setProducts(prevProducts => {
    return prevProducts.filter(p => ! p.selected);
  });
}
const DeleteProducts = () => {
  const filteredProducts = products.filter(product => !product.selected);
  setProducts(filteredProducts);
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM