react对antd全局消息提示二次封装

如果不对messageApi进行二次封装,直接使用会造成一些报错,现在我们封装后使用

封装

import React, { useEffect } from 'react';
import { message } from 'antd';

export default function Message(props:any) {
    useEffect(() => {
        message.open({
            type: props.message.type,
            content: props.message.content,
        });
    }, []);
    return (
        <>

        </>
    );
}

使用

import React, {useEffect, useState} from 'react'
import './index.css'
import Message from '../../global/message'
export default function Index() {
  const [showMessage, setShowMessage] = useState(false);
  const [messageData, setMessageData] = useState<{type: string, content: string}>({ type: '', content: '' });
const onFinish = (values: any) => {   //内容校验成功后输出
    
        setMessageData({ content:response.data.msg+",重新登录后生效", type: 'success' }); // 设置 type 为 'info'
        setShowMessage(true);
     
  };
  return (
      <div className='personMsg'>
        {showMessage && <Message message={messageData} key={Date.now()}/>}
      </div>
  )
}

通过父组件传值的方式显示不同内容,key用来保证每次点击后组件重新渲染

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值