You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在React JS中如何实现点击按钮删除列表对应元素?

React用户列表删除功能错误修复

现有代码核心问题

  • useEffect依赖项配置错误:将users加入依赖数组会导致每次更新用户列表后重新触发接口请求,陷入无限请求死循环,首次加载接口只需要空依赖数组即可。
  • 删除逻辑缺失目标标识:当前deleteMe函数没有绑定要删除的用户ID,过滤逻辑也未做排除匹配,无法实现删除指定条目的效果。
  • 列表渲染未加唯一key:map遍历输出列表项时未配置key属性,会触发React开发环境警告。

修复后完整代码

import React, { useEffect, useState } from 'react'
const App = () => {
  const [users, setUsers] = useState([])

  useEffect(() => {
    fetch("https://jsonplaceholder.typicode.com/users")
      .then((response) => response.json())
      .then((users) => {
        setUsers(users);
      })
  }, []); // 依赖改为空数组,仅首次挂载执行请求

  // 接收要删除的用户ID作为参数
  const deleteMe = (userId) => {
    setUsers(prevState => {
      // 过滤掉ID匹配的用户,剩下的就是删除后的列表
      return prevState.filter(user => user.id !== userId)
    })
  }

  return (
    <>
      {/* 给列表项加唯一key属性 */}
      {users.map((user) => {
        return (
          <div key={user.id}> 
            {user.name}
            {/* 点击时传入当前条目的用户ID */}
            <button onClick={() => deleteMe(user.id)}> Delete </button>
            {/* <button onClick={}> Update </button> */}
          </div>
        )
      })}
    </>
  )
}

export default App

内容的提问来源于stack exchange,提问作者Hayko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:15:03