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

原因

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

解决方法(一)

降级到React 18.3.0

运行命令:

npm i [email protected] [email protected]

解决方法(二)

如果使用的是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,请等待官方发版本

相关推荐
牧杉-惊蛰4 小时前
css 数字从0开始增加的动画效果
前端·javascript·css
孤灯淡茶4 小时前
Fiori学习专题十五:Nested Views
前端·javascript·学习
Monly215 小时前
Vue:el-table-tree懒加载数据
前端·javascript·vue.js
进取星辰5 小时前
16、路由守卫:设置魔法结界——React 19 React Router
前端·javascript·react.js
等下吃什么?5 小时前
React19 useOptimistic 用法
react.js
半块橘子6 小时前
Electron-vite中ELECTRON_RENDERER_URL环境变量如何被设置的
前端·javascript·electron
whistle哨子6 小时前
electron-vite 应用打包自定义图标不显示问题
javascript·electron
Jiaberrr6 小时前
uniapp 实现低功耗蓝牙连接并读写数据实战指南
java·前端·javascript·vue.js·struts·uni-app
林小白的日常6 小时前
uniapp打包apk如何实现版本更新
前端·javascript·uni-app
AscendKing8 小时前
donet使用指定版本sdk
javascript·windows