【问题标题】:React hooks - Remove multi object from array and update stateReact hooks - 从数组中删除多个对象并更新状态
【发布时间】:2020-02-19 11:45:47
【问题描述】:

如何删除数组的多个对象并更新状态? 我从复选框中选择了多个项目 这是选中的项目 [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 个选定项目之外的剩余项目? 谢谢

【问题讨论】:

标签: javascript reactjs react-hooks


【解决方案1】:

您可以将其简化为单个过滤函数:

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

【讨论】:

    【解决方案2】:
    const DeleteProducts = () => {
      const filteredProducts = products.filter(product => !product.selected);
      setProducts(filteredProducts);
    };
    

    【讨论】:

    • 虽然此代码可以解决问题,including an explanation 说明如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提出问题的人。请edit您的回答添加解释并说明适用的限制和假设。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 2021-04-07
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多