关于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,请等待官方发版本

相关推荐
Synmbrf11 小时前
ECharts 饼图鼠标悬浮后标签 title 消失的问题
前端·javascript
breeze jiang12 小时前
React useRef 实战:从 input 聚焦到 Web Worker 引用
前端·javascript·react.js
苏灿烤鱼12 小时前
GitHub #2 拆解|把工程经验装进 Agent,为什么仍会“静默失效”?
javascript·人工智能·agent
Rysxt_14 小时前
React vs Vue.js:2025年两大主流前端框架深度对比教程
vue.js·react.js·前端框架
by__csdn14 小时前
Vue vs React vs Angular:前端框架终极对决
前端·vue.js·react.js·前端框架·vue·react·angular
To_OC20 小时前
LC 35 搜索插入位置:二分查找谁都会,边界条件谁写谁懵
javascript·算法·leetcode
码哥DFS21 小时前
二叉树的直径
开发语言·javascript·算法
烬羽1 天前
上来就用 useState?你大概率用错了——useRef 的三种正确打开方式
react.js·前端框架·全栈
光影少年1 天前
RN的Fabric 渲染流程
运维·前端·javascript·react native·react.js·fabric
烬羽1 天前
《React Router 受保护路由的 3 个坑,第 2 个 90% 的人都踩过》
react.js·性能优化·全栈