Next.js 15 + React 19构建失败:Radix UI的useEffectEvent导入错误求助
解决Radix UI + Next.js构建时
useEffectEvent导入错误 核心原因
useEffectEvent是React 18.2.0及以上版本新增的API,你的问题要么是项目React版本低于18.2.0,要么是Radix UI的子依赖版本过高,调用了当前React版本不支持的API。
解决办法
1. 升级React及React DOM到兼容版本
在项目根目录执行命令,将React升级到18.2.0及以上:
npm install react@^18.2.0 react-dom@^18.2.0 --save
完成后重新执行构建:
npm run build
2. 降级Radix UI相关依赖(无法升级React时)
如果暂时不能升级React,需要将Radix UI组件降级到不依赖useEffectEvent的版本:
- 查找兼容版本:参考Radix UI版本变更日志,选择不依赖该API的稳定版本(比如
@radix-ui/react-dropdown-menu@^2.0.0之前的版本) - 安装指定版本:
npm install @radix-ui/react-dropdown-menu@<兼容版本号> @radix-ui/react-roving-focus@<兼容版本号> --save
3. 清理重复依赖并统一版本
项目中出现子node_modules重复依赖的情况,可能是版本不一致导致的,执行以下步骤:
- 删除依赖文件:
rm -rf node_modules package-lock.json
- 添加版本锁定规则:在
package.json中加入resolutions字段,强制统一子依赖版本:
"resolutions": { "@radix-ui/react-use-effect-event": "^1.0.0" }
- 安装工具并重新拉取依赖:
npm install npm-force-resolutions --save-dev npx npm-force-resolutions npm install
4. 确认Next.js版本兼容性
你使用的Next.js 15.3.0要求React 18.2+,因此升级React到对应版本是最稳妥的适配方案。
内容的提问来源于stack exchange,提问作者Nickthereal
相关产品推荐
相关产品推荐

