当前位置: 首页 > news >正文

React 18/19 使用Ant Design全局弹窗message

react 18 及以上,拥有并发模式,不允许在渲染过程中直接触发副作用(如弹窗、网络请求等),应将其放至 useEffect 中,确保其在渲染完成后调用

useEffect(() => {message.success('操作成功!');}, []); // 空依赖表示只在组件挂载时执行

否则会报错:

// 你在渲染中调用通知,它将被React 18并发模式打断。请改为触发生效。
You are calling notice in render which will break in
React 18 concurrent mode. Please trigger in effect instead.

单纯的将message放至useEffect中调用,会报错:

// 静态函数不能像动态主题那样消耗上下文。请使用“App”组件。
Warning: [antd: message] Static function can not consume 
context like dynamic theme. Please use 'App' component instead.

最终方法:

// 1. 在 index.tsx 项目入口文件处使用App包裹
import {App as AntApp} from "antd";
……
function App() {return (<AntApp><App /></AntApp>)
}
​
// 2. 在组件tsx文件中使用
import useApp from "antd/es/app/useApp";
……
function Component() {const {message} = useApp()useEffect(() => {// 自行添加条件,以控制弹窗出现时间message.info('弹窗内容')}, [oldMessage]);       // 当变量变化时弹出弹窗
}

相关文章:

  • 【python】django sqlite版本过低怎么办
  • RTDETR融合[CVPR2025]BHViT中的token_mixer模块
  • 从 PyTorch 到 ONNX:深度学习模型导出全解析
  • Mamba 原理汇总
  • 【虚幻C++笔记】接口
  • MySQL联表查询底层原理
  • http/https请求解析
  • Pikachu靶场——Cross-Site Scripting
  • 需求分析---软件架构师武器库中的天眼系统
  • 记录小程序第一次调用Api,基于腾讯云Serverless函数,实现小程序的成功接入api,以及数据调用
  • 实验四 中断实验
  • 【Linux】第七章 控制对文件的访问
  • 实现类似 “更新中” 的水平进度条按钮效果
  • 高级java每日一道面试题-2025年4月10日-微服务篇[Nacos篇]-Nacos的服务健康检查机制是如何工作的?
  • 下载maven低版本(官网)
  • 网站301搬家后谷歌一直不收录新页面怎么办?
  • maven如何解决jar包依赖冲突
  • Maven 多仓库和多镜像配置
  • 红宝书第四十七讲:Node.js服务器框架解析:Express vs Koa 完全指南
  • 408 计算机网络 知识点记忆(9)
  • 南宁新站seo/百度高级检索入口
  • 今天石家庄出什么事了/网络推广关键词优化公司
  • 爱采购网/seo排名优化的网站
  • 对网站建设的考核机制/网站推广文章
  • 美工设计/排名优化课程
  • 公司用自己机房做网站备案/广告公司名字