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

相关推荐
明月_清风40 分钟前
自定义右键菜单:在项目里实现“选中文字即刻生成新提示”
前端·javascript
明月_清风41 分钟前
告别后端转换:高质量批量导出实战
前端·javascript
刘发财5 小时前
弃用html2pdf.js,这个html转pdf方案能力是它的几十倍
前端·javascript·github
ssshooter12 小时前
看完就懂 useSyncExternalStore
前端·javascript·react.js
Live0000013 小时前
在鸿蒙中使用 Repeat 渲染嵌套列表,修改内层列表的一个元素,页面不会更新
前端·javascript·react native
柳杉13 小时前
使用Ai从零开发智慧水利态势感知大屏(开源)
前端·javascript·数据可视化
球球pick小樱花14 小时前
游戏官网前端工具库:海内外案例解析
前端·javascript·css
喝水的长颈鹿14 小时前
【大白话前端 02】网页从解析到绘制的全流程
前端·javascript
用户145369814587814 小时前
VersionCheck.js - 让前端版本更新变得简单优雅
前端·javascript
codingWhat14 小时前
整理「祖传」代码,就是在开发脚手架?
前端·javascript·node.js