React18-列表数据实现用户删除、批量删除

用户删除、批量删除接口

删除、批量删除接口

接口地址

shell 复制代码
POST

/users/delete

请求参数

js 复制代码
{
  userIds: []
}

参数为数组,删除和批量删除共用

功能介绍

  1. 单个删除

删除按钮绑定事件,点击显示弹框确认。

js 复制代码
// 删除
const handleDel = (values: DataType) => {
  // 此处要注意,不可以直接赋值
  /**
   * 1. 如果要通过更改状态的方式传参,则需要这么做。
   * userIds.push(values.userId)
   * setUserIds(userIds)
   * 2. 直接把参数传过去,不更改状态
   */
  Modal.confirm({
    title: '确认',
    content: <span>确认删除该用户吗?</span>,
    onOk: async () => {
      delUserSubmit([values.userId])
    }
  })
}
  1. 批量删除

添加复选框配置,勾选后,保存userIds状态,点击批量删除按钮,触发弹框确认

js 复制代码
// 绑定复选框事件
const rowSelection = {
  type: 'checkbox',
  selectedRowKeys: userIds,
  onChange: async (selectedRowKeys: React.Key[]) => {
    setUserIds(selectedRowKeys as number[])
  }
}

// 批量删除确认
const handlePatchConfirm = () => {
  if (userIds.length == 0) {
    message.error('请选择要删除的用户')
    return
  }
  Modal.confirm({
    title: '确认',
    content: <span>确认删除该批用户吗?</span>,
    onOk: async () => {
      delUserSubmit()
    }
  })
}
  1. 调用公共删除接口
js 复制代码
// 批量删除
const delUserSubmit = async (ids?: number[]) => {
  try {
    await api.userDel({
      userIds: ids || (userIds as number[]) //可单个删除,也可批量删除
    })
    message.success('删除成功')
    setUserIds([])
    getUserList()
  } catch (error) {
    console.log(error)
  }
}
相关推荐
全栈前端老曹几秒前
【前端路由】Vue Router 动态导入与懒加载 - 使用 () => import(‘...‘) 实现按需加载组件
前端·javascript·vue.js·性能优化·spa·vue-router·懒加载
温宇飞2 分钟前
高效的线性采样高斯模糊
javascript·webgl
POLITE317 分钟前
Leetcode 160.相交链表 JavaScript (Day 9)
javascript·leetcode·链表
北辰alk23 分钟前
Vue 3 深度解析:watch 与 watchEffect 的终极对决
vue.js
Zyx200725 分钟前
构建现代 React 应用:从项目初始化到路由与数据获取
前端
大布布将军29 分钟前
☁️ 自动化交付:CI/CD 流程与云端部署
运维·前端·程序人生·ci/cd·职场和发展·node.js·自动化
LYFlied29 分钟前
Vue.js 中的 XSS 攻击防护机制详解
前端·vue.js·xss
七宝三叔35 分钟前
C#,为什么要用LINQ?
前端
七宝三叔36 分钟前
用「点外卖」的例子讲透HttpClient
前端
再睡一夏就好1 小时前
LInux线程池实战:单例模式设计与多线程安全解析
linux·运维·服务器·开发语言·javascript·c++·ecmascript