代码之家  ›  专栏  ›  技术社区  ›  Manas S. Roy

正在useState()中从数组中删除项

  •  0
  • Manas S. Roy  · 技术社区  · 2 年前

    我正在学习反应。需要一些帮助来理解这一点。

    我有两个按钮。一个是“添加随机文本”,另一个是“删除”。

    对于添加按钮,我使用了数学。随机生成数字并添加一些文本。

    我想通过映射来显示列表项。单击删除按钮时,最后一项将被删除。

    我尝试了pop(),但只显示了删除的一个。我怎样才能保留整个列表,而只删除最后一个?

    const [data, setData]=useState([]);
    let addHandler =()=>{
    //Newdata is Math.random()*100+some text
    setData([...data, newdata])
    }
    let removeHandler=()=>{
    
    }
    
    1 回复  |  直到 2 年前
        1
  •  4
  •   Bas    2 年前

    一种方法是 .slice() 将数组从0划分为长度-1

    let removeHandler=()=>{
        setData(data.slice(0, data.length - 1))
    }
    

    .pop() 也应该有效。E、 g。

    data.pop() // removes last element from array
    setData([...data]) // clone remaining array