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

如何自定义Ag-Grid API请求失败时的ERR错误提示列表?

自定义Ag-Grid API请求失败时的错误提示列表

核心思路

先精准捕获API请求的错误类型(HTTP状态码、网络异常等),将错误映射为自定义提示文案,再通过Ag-Grid的自定义渲染逻辑替换默认的ERR列表展示。

具体实现步骤

1. 捕获并处理API请求错误

在API请求环节,根据不同错误场景生成对应自定义提示,存入状态供Ag-Grid调用:

// 示例API请求函数(以fetch为例)
const fetchGridData = async () => {
  try {
    const res = await fetch('/your-api-endpoint');
    if (!res.ok) {
      // 根据HTTP状态码匹配自定义提示
      let customMsg;
      switch (res.status) {
        case 403:
          customMsg = "您无权限访问该数据,请联系管理员";
          break;
        case 404:
          customMsg = "请求的数据源不存在,请检查接口地址";
          break;
        case 500:
          customMsg = "服务器繁忙,请稍后重试";
          break;
        default:
          customMsg = "数据加载失败,请刷新页面重试";
      }
      // 将自定义错误存入状态
      setGridErrors([{ id: 1, msg: customMsg }]);
      return;
    }
    // 请求成功则加载正常数据
    const data = await res.json();
    setRowData(data);
    setGridErrors([]);
  } catch (err) {
    // 处理网络异常类错误
    setGridErrors([{ id: 1, msg: "网络连接异常,请检查您的网络设置" }]);
  }
};

2. 配置Ag-Grid渲染自定义错误列表

通过自定义列渲染器或无数据覆盖层,替换默认的ERR展示:

// React环境下的Ag-Grid配置示例
<AgGridReact
  rowData={gridErrors.length > 0 ? gridErrors : rowData}
  columnDefs={[
    gridErrors.length > 0 
      ? {
          headerName: "错误提示",
          field: "msg",
          cellRenderer: (params) => {
            // 自定义错误样式与展示内容
            return `<div style="color: #dc3545; padding: 12px; line-height: 1.5;">${params.value}</div>`;
          },
          flex: 1
        }
      : [
          // 正常数据列配置
          { headerName: "ID", field: "id", flex: 1 },
          { headerName: "名称", field: "name", flex: 2 }
        ]
  ]}
  // 无错误时的空数据提示
  overlayNoRowsTemplate={
    gridErrors.length === 0 
      ? '<div style="padding: 20px; color: #6c757d;">暂无数据</div>' 
      : ""
  }
/>

3. 统一管理错误映射(可选)

如果错误类型较多,可维护一个错误映射表,方便统一修改:

const ERROR_MSG_MAP = {
  403: "您无权限访问该数据,请联系管理员",
  404: "请求的数据源不存在,请检查接口地址",
  500: "服务器繁忙,请稍后重试",
  NETWORK_ERROR: "网络连接异常,请检查您的网络设置",
  API_TIMEOUT: "请求超时,请重新尝试"
};

// 使用时直接匹配
const customMsg = ERROR_MSG_MAP[res.status] || "数据加载失败,请刷新页面重试";

关键注意点

  • 确保错误捕获覆盖所有场景:HTTP状态码错误、网络异常、请求超时等。
  • 自定义渲染时可添加样式区分错误等级(比如警告用黄色、严重错误用红色)。
  • 若需展示多条错误,只需将gridErrors设为包含多个提示对象的数组即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 22:45:27