当前位置:首页 > React

react 后台管理实现删除

2026-01-27 12:11:54React

实现删除功能的基本逻辑

在React后台管理中实现删除功能通常涉及前端交互与后端API的协同。前端负责触发删除操作并处理用户确认,后端负责实际数据删除。

创建删除按钮或图标,绑定点击事件。点击时弹出确认对话框,避免误操作。确认后调用删除API,成功后更新前端状态或重新获取数据。

使用Ant Design的Modal确认框

Ant Design的Modal组件提供简洁的确认对话框实现方式。通过Modal.confirm可快速创建删除确认流程。

import { Modal, Button } from 'antd';

const handleDelete = (id) => {
  Modal.confirm({
    title: '确认删除',
    content: '确定要删除这条数据吗?',
    okText: '确认',
    cancelText: '取消',
    onOk: () => {
      // 调用删除API
      deleteItem(id).then(() => {
        // 删除成功后刷新列表
        fetchData();
      });
    },
  });
};

调用后端API

删除操作通常需要调用RESTful API的DELETE方法。使用axios或fetch发送请求,携带必要参数如ID。

const deleteItem = async (id) => {
  try {
    const response = await axios.delete(`/api/items/${id}`);
    return response.data;
  } catch (error) {
    console.error('删除失败:', error);
    throw error;
  }
};

更新前端状态

删除成功后需更新前端状态。如果是本地状态管理,直接过滤删除项;若依赖后端数据,则重新获取列表。

// 本地状态更新
const [data, setData] = useState([]);

const handleDeleteSuccess = (id) => {
  setData(data.filter(item => item.id !== id));
};

// 或重新获取数据
const fetchData = async () => {
  const res = await axios.get('/api/items');
  setData(res.data);
};

错误处理与反馈

删除操作需包含错误处理。使用Ant Design的message组件提示操作结果,增强用户体验。

import { message } from 'antd';

const handleDelete = (id) => {
  Modal.confirm({
    // ...其他配置
    onOk: () => {
      deleteItem(id)
        .then(() => {
          message.success('删除成功');
          fetchData();
        })
        .catch(() => {
          message.error('删除失败');
        });
    },
  });
};

批量删除实现

对于批量删除,需先收集选中项的ID数组,确认后一次性提交。使用Table组件的rowSelection实现多选。

const [selectedRowKeys, setSelectedRowKeys] = useState([]);

const handleBatchDelete = () => {
  if (selectedRowKeys.length === 0) {
    message.warning('请至少选择一项');
    return;
  }
  Modal.confirm({
    title: `确认删除选中的${selectedRowKeys.length}项?`,
    onOk: () => {
      axios.delete('/api/items/batch', { data: { ids: selectedRowKeys } })
        .then(() => {
          message.success('批量删除成功');
          setSelectedRowKeys([]);
          fetchData();
        });
    },
  });
};

权限控制

根据用户权限控制删除按钮的显示。结合角色或权限系统,动态渲染按钮。

react 后台管理实现删除

const { user } = useAuth(); // 假设有权限hook

{user.canDelete && (
  <Button danger onClick={() => handleDelete(record.id)}>
    删除
  </Button>
)}

分享给朋友:

相关文章

react如何保养

react如何保养

保持组件简洁 将大型组件拆分为更小、更专注的组件,每个组件只负责单一功能。避免在单个组件中处理过多逻辑或状态,这有助于提高可维护性和可测试性。 合理使用状态管理 根据应用复杂度选择状态管理方案。简单…

react如何开发组件

react如何开发组件

React 组件开发基础 React 组件分为函数组件和类组件两种形式。函数组件是现代 React 开发的主流方式,结合 Hooks 可以实现完整功能。 函数组件示例: function Gree…

react如何开发

react如何开发

React 开发基础步骤 安装 Node.js 和 npm/yarn 确保系统已安装 Node.js(包含 npm)或 Yarn。React 项目依赖这些工具管理包和运行脚本。官方推荐使用 Node.…

react 如何跳转

react 如何跳转

使用 React Router 进行页面跳转 React 应用中通常使用 react-router-dom 库实现页面跳转。以下是几种常见的跳转方式: 安装依赖 npm install react…

react 如何精通

react 如何精通

掌握核心概念 深入理解React的基础概念,包括组件(函数组件与类组件)、状态(useState)、生命周期(useEffect)、Props传递、虚拟DOM与Diff算法。通过官方文档或《React…

react路由如何配置

react路由如何配置

React 路由配置方法 安装 React Router 使用 npm 或 yarn 安装 React Router 的 DOM 版本: npm install react-router-dom #…