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

相关推荐
温轻舟2 分钟前
禁毒路上,任重道远 | HTML页面
开发语言·前端·javascript·css·html·温轻舟
shaohaoyongchuang21 分钟前
vue_03路由
前端·javascript·vue.js
我叫张小白。28 分钟前
Vue3计算属性:高效数据处理
前端·javascript·vue.js·前端框架·vue
●VON1 小时前
Electron 项目在“鸿蒙端”与“桌面端”运行的区别
javascript·学习·electron·openharmony
徐小夕@趣谈前端1 小时前
NO-CRM本地安装版开源!人人都能拥有开箱即用的智慧CRM管理系统
javascript·vue.js·开源
箫笙默2 小时前
JS基础 - 正则笔记
开发语言·javascript·笔记
专注前端30年2 小时前
如何使用 HTML5 的 Canvas + JavaScript 实现炫酷的游戏得分特效?
前端·javascript·游戏·html5·canvas·canva可画
|晴 天|2 小时前
2025年前端框架选择:React、Vue还是Svelte?
vue.js·react.js·前端框架
张丶大帅2 小时前
JS案例合集
开发语言·javascript·笔记
helloyangkl3 小时前
前端——不同环境下配置env
前端·javascript·react.js