关于react19版本更新后部分组件无法正常使用的问题

原因

我们在使用像是提示、弹窗等静态方法时,会报错reactRender is not a function;这是由于 React 19 调整了 react-dom 的导出方式,导致无法直接使用 ReactDOM.render 方法

解决方法(一)

降级到React 18.3.0

运行命令:

npm i react@18.3.0 react-dom@18.3.0

解决方法(二)

如果使用的是ant-design;可以安装兼容包

npm install @ant-design/v5-patch-for-react-19 --save

在应用入口处引入兼容包

import '@ant-design/v5-patch-for-react-19';

解决方法(三)

如果使用的是:antd-mobile;

使用unstableSetRender 为底层注册方法,允许开发者修改 ReactDOM 的渲染方法。在你的应用入口处写入:

js 复制代码
 import { unstableSetRender } from 'antd-mobile';
 import { createRoot } from 'react-dom/client';

 unstableSetRender((node, container) => {
   container._reactRoot ||= createRoot(container);
   const root = container._reactRoot;
   root.render(node);
   return async () => {
     await new Promise((resolve) => setTimeout(resolve, 0));
     root.unmount();
   };
 });

注意:只能用于antd-mobile@^5.39.1;但现在还是5.39.0,请等待官方发版本

相关推荐
传人once1 小时前
页面中心圆圈放大效果如何写
开发语言·javascript·ecmascript
光影少年3 小时前
为什么 JavaScript 中 0.1 + 0.2 !== 0.3,如何让其相等?
前端·javascript·算法
梓雨枔5 小时前
JavaScript+快速学习,简单好用~
javascript·学习
木易 士心5 小时前
JavaScript 闭包原理和实践深度解析
开发语言·javascript·ecmascript
ITOM运维行者6 小时前
PHP性能监控怎么做?从响应时间到慢函数的6个关键指标
前端·javascript·后端
hai_android7 小时前
一个公式看懂动态跨表查找:P8 + VLOOKUP
前端·javascript·vue.js
杨利杰YJlio7 小时前
Tibo的28天计划DAY1GPT-6提速50%意味着什么?
前端·javascript·后端
鬼手点金7 小时前
opencode-全能开发者配置
java·linux·服务器·前端·javascript·学习·前向传播
晴天小庭7 小时前
Sael——基于Jev的AI中转站的安全风控网关,现已开源
人工智能·后端·react.js
OpsEye8 小时前
兼顾数据安全与成本,私有化 AI 网关正在成为企业标配
javascript·ai编程