ant design pro (十三)advanced 错误处理

摘要:
Result结果页˂Resulttype="error"title="提交失败"description="请核对并修改以下信息后,再重新提交。"actions={返回修改}/˃这个组件一般用在提交结果展示,文案操作等均可自定义。

一、概述

原文地址:https://pro.ant.design/docs/error-cn

二、详细

2.1、页面级报错

2.1.1、应用场景

  • 路由直接引导到报错页面,比如你输入的网址没有匹配到任何页面,可以由路由引导到预设的 404 页面。

  • 代码控制跳转到报错页面,比如根据请求返回的数据,将没有权限的用户引导到 403 页面。

2.1.2、实现

针对页面级的报错,我们提供了两个业务组件供你选择,可以很方便地实现一个报错页面:

<Exception type="404" />

默认支持 404,403,500 三种错误,也可自定义文案等内容。

  • Result 结果页

    <Result
      type="error"
      title="提交失败"
      description="请核对并修改以下信息后,再重新提交。"
      actions={<Button size="large" type="primary">返回修改</Button>}
    />

    这个组件一般用在提交结果展示,文案操作等均可自定义。
    脚手架默认会将无法匹配到页面的网址引导到预设的 404 页面,如果需要自定义此页面,可以修改这个文件./src/routes/Exception/404.js,相关的路由配置在这里BasicLayout.js#L362

2.2、提示性报错

2.2.1、应用场景

  • 表单项校验报错。

  • 操作反馈。

  • 网络请求错误。

2.2.2、实现

关于表单项报错,请参考antd Form中的实现。对于操作反馈和网络请求错误提示,有一些组件可能会用到:

在单页应用中,最常见的需求就是处理网络错误信息,我们可以利用 message 和 notification 来吐出响应的接口/网络/业务数据错误。

ant design pro (十三)advanced 错误处理第1张

import fetch from 'dva/fetch';
import { notification } from 'antd';
...
fetch(url)
  .then(response => response.json())
  .catch((error) => {
    // 处理接口返回的数据格式错误的逻辑
    if (error.code) {
      notification.error({
        message: error.name,
        description: error.message,
      });
    }
    if ('stack' in error && 'message' in error) {
      notification.error({
        message: `请求错误: ${url}`,
        description: error.message,
      });
    }
    return error;
  });

Ant Design Pro 封装了一个request.js统一处理请求,完整代码可参考:https://github.com/ant-design/ant-design-pro/blob/master/src/utils/request.js

免责声明:文章转载自《ant design pro (十三)advanced 错误处理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SAML在SSO中的应用目前用到最全的datagrid(easyui)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

利用fetch进行POST传参

fetch(config.host+"url",{ method:"POST", mode: 'cors',跨域请求 headers: { 'Content-Type': 'application/json' }, body:JSON.stringify({ 'id' : 'XXX' }) }).then(response => response....

php连接数据库(一)

1、php链接数据库: 1、链接数据库  2、判断是否连接成功 3、设置字符集 4、选择数据库 5、准备SQL语句 6、发送SQL语句 7、处理结果集 8、释放资源(关闭数据库)   $result = mysqli_querry($link,$sql) //返回一个对象   mysqli_fetch_assoc($result) 一个一个往下读,返回的时...

巧用javascript ajax,实现跨域请求外带,增大漏洞危害

  今天聊聊javascript ajax发起请求,获取数据:    实在是漏洞挖掘中,经常会用到,学好javascript实在是太有用了    JS原生请求:      XMLHttpRequest(XHR)对象用于与服务器交互。通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL,获取数据。这允许网页在不影响用户操作的情况下,更...

SQL Server 事务、异常和游标

Ø 事务 在数据库中有时候需要把多个步骤的指令当作一个整体来运行,这个整体要么全部成功,要么全部失败,这就需要用到事务。 1、 事务的特点 事务由若干条T-SQL指令组成,并且所有的指令昨晚一个整体提交给数据库系统,执行时,这组指令要么全部执行完成,要么全部取消。因此,事务是一个不可分割的逻辑单元。 事务有4个属性:原子性(Atomicity)、一...

手写Redux-Saga源码

上一篇文章我们分析了Redux-Thunk的源码,可以看到他的代码非常简单,只是让dispatch可以处理函数类型的action,其作者也承认对于复杂场景,Redux-Thunk并不适用,还推荐了Redux-Saga来处理复杂副作用。本文要讲的就是Redux-Saga,这个也是我在实际工作中使用最多的Redux异步解决方案。Redux-Saga比Redux...

游标小例

一,游标的 作用: 当在存储过程,函数,批处理,触发器中 使用 select 返回多条记录时,游标提供了一个可以对记录进行逐条处理的 方法.二,游标的使用方法:1,使用Declare Cursor语句,根据Select语句创建游标.有两种操作方法,效果是一样的,请注意他们的区别 :第一种:声明变量,然后设置游标Declare @MyVariable Cur...