如何在reactjs中单击删除表格行?

Posted

技术标签:

【中文标题】如何在reactjs中单击删除表格行?【英文标题】:How to remove table row on click in reactjs? 【发布时间】:2021-11-28 08:10:11 【问题描述】:

这是对我之前问题的补充;我试图在单击按钮时删除特定行,但是每次单击按钮时,它都会删除下一个表格行而不是其本身。这是video 的样子。我用来执行此操作的当前代码是:

const [shop, setShop] = useState([]);

const singleDelete = (d) => 
        const newArr = [...shop];
        const index = shop.findIndex((contact) => contact.id === d);
        newArr.splice(index, 1);
        setShop(newArr);


return (
        <div className="content">
         <Table>
            <tbody id="tbid">
                    
                      (shop.map((s,i) => (
                        <tr key=`$s+i` id=i value=`$iRow`>
                        <td>i</td>
                        <td>profil[i]</td>
                        <td>s</td>
                        <td></td>
                        <td>acc[i]</td>
                        <td>
                        <Button className="btn-round btn-icon" color="danger" size="sm" type="submit" onClick=singleDelete>
                              <i className="icon-simple-delete"/>
                          </Button>
                        </td>
                        </tr>
                      )))
                    </tbody>    
         </Table>
        <div>
)

我尝试过使用 setShop(shop.filter((_, index) =&gt; index !== d)); 但结果还是一样。

【问题讨论】:

d怎么会有店铺ID的值? 【参考方案1】:

也许可以尝试使用过滤器:

const singleDelete = (d) => 
    setShop(shop.filter((contact) => contact.id !== d));

【讨论】:

【参考方案2】:

问题是您没有将 ID 传递给 singleDelete 函数。

改变这个:

onClick=singleDelete

到这里:

onClick= () =&gt; singleDelete(s.id)

如果像 @stoen 推荐的那样重写 singleDelete 函数会很好。

【讨论】:

以上是关于如何在reactjs中单击删除表格行?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用reactjs和material ui删除表格内的特定文本字段

如何删除 Material UI DataGrid (Reactjs) 中的特定行

CAD中怎么删除多余的表行?CAD表格编辑教程

单击事件后如何从 ReactJS 中的数组中删除对象

excel表格如何统一删除一串数字前面相同数字

如何将第二个表格视图的值与第一个表格视图的单击行的关系分开?