当前位置:首页 > 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();
        });
    },
  });
};

权限控制

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

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

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

react 后台管理实现删除

分享给朋友:

相关文章

如何学react

如何学react

学习 React 的基础知识 React 是一个用于构建用户界面的 JavaScript 库。学习 React 的第一步是掌握其核心概念,包括组件、状态(State)、属性(Props)和生命周期方法…

react 如何引入css

react 如何引入css

在 React 中引入 CSS 的方法 React 提供了多种引入 CSS 的方式,可以根据项目需求选择合适的方法。以下是常见的几种方式: 内联样式 内联样式直接在组件中通过 style 属性定义…

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 编写组件代码 在 s…

react native如何启动

react native如何启动

如何启动 React Native 项目 安装 Node.js 和 npm 确保已安装 Node.js(建议版本 16 或更高)和 npm(Node.js 自带)。可通过以下命令检查版本: node…

如何手写一个react

如何手写一个react

手写一个简单的 React 创建一个基础的 React 实现需要理解其核心概念:虚拟 DOM、组件、状态管理和渲染。以下是一个简化版的 React 实现。 创建虚拟 DOM 虚拟 DOM 是真实…

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 基础页面结构 在…