react antd message多条数据展示样式

最终效果:

前言:

平时我们经常用到message 来做一些错误提示,最常见的就是单行提示。如下图:

实现代码:

javascript 复制代码
message.error('This is an error message')

多行动态message实现

参考文献:antd message

链接地址:https://ant-design.antgroup.com/components/message-cn
message的参数

我们可以用config的形式来配置message
className

其中className就可以实现自定义样式,为什么要用message的className?

因为message作为弹出层,我们无法通过在某个页面用global来控制antd的属性,他的作用域在全局,我们用className给message加了类名,就可以锁定当前的message做一些调整。

content

content的内容可以是string类型也可以是 ReactNode,这样我们就可以用通过ReactNode返回多行文本内容。

duration

我们知道message是三秒后就自动关闭,在我们开发过程中需要调试样式可以把duration设置为0,永不关闭来使用

页面代码

messageError.tsx

注意:errInfos可以通过接口返回或者动态的值来返回,实现动态提示效果。

javascript 复制代码
import { Button, message } from 'antd';
import styles from './index.less';

interface IType {
  id: number;
  name: string;
}

const MessageError = () => {
  const errInfos: IType[] = [
    { id: 1, name: '打啥' },
    { id: 2, name: '池昌旭' },
    { id: 3, name: '朴有天' },
  ];
  const handleError = (errList: IType[]) => {
    if (errList.length === 0) {
      message.success('成功');
    } else {
      const errDom = (
        <div className={styles.err_div}>
          {errList.map((v: any) => {
            const { id, name } = v;
            return (
              <div className={styles.err_des} key={id}>
                旅客{id}:<span>{name} XXXXXXXXXXXXXXX</span>
              </div>
            );
          })}
        </div>
      );
      message.error({
        content: errDom,
        className: styles.err_con,
        duration: 0,
      });
    }
  };
  return <Button onClick={() => handleError(errInfos)}>点击</Button>;
};

export default MessageError;

index.less

样式很关键,如果不通过global修改antd默认属性,展示样式如下:

javascript 复制代码
.err_div{
  display: inline-block;
}
.err_des {
  text-align: left;
}
.err_con {
  :global {
    .ant-message-error {
      display: flex;
      align-items: flex-start;
    }
    .ant-message-error .anticon {
      margin-top: 2px;
  }
  }
}

最终效果

相关推荐
JavaPub-rodert6 小时前
从零搭建通用管理后台:ShiyuAdmin 的 Go、React 与 RBAC 实践
开发语言·react.js·golang
Highcharts.js13 小时前
React 中原生支持使用 JSX 组件配置自定义表格 Highcharts Grid
前端·javascript·react.js·前端框架·jsx·highcharts·自定义表格
JudithHuang15 小时前
React 嵌套路由与布局
前端·react.js·arcgis·react·react router
前端小D18 小时前
React Native项目开发(iOS侧为例)
javascript·react native·react.js
志尊宝2 天前
AI原生前端开发(042):AI辅助的路由设计与优化
javascript·react.js·ai-native
znsoft2 天前
MaClaw(码卡龙)技术拆解:一个 Go + React 的可自进化智能体平台
开发语言·react.js·golang
濮水大叔3 天前
React/Next.js 生态里,有没有 CabloyJS 这样的全栈框架?
react.js·全栈·next.js
前端小D3 天前
React Native Android 项目搭建
android·react native·react.js
Highcharts.js4 天前
Highcharts 集成到 React 或 Vue 项目中时,如何高效地使用 TypeScript技巧?
vue.js·人工智能·react.js·typescript·前端框架·highcharts
liuchangng5 天前
React 19 + Vite 6 实战:从教材 PDF 到 866 词间隔重复单词 App
前端·react.js·pdf·vite·开源项目