EXPO React Native使用Drawer Navigation时react-native-reanimated初始化失败
常见低级错误排查
先从最容易踩坑的点逐一检查:
1. Babel配置遗漏或顺序错误
react-native-reanimated 要求在 babel.config.js 中添加专属插件,而且必须放在所有插件的最前面——这是绝大多数人会犯的低级错误。你核对下你的babel配置是否符合要求:
module.exports = { presets: ['module:metro-react-native-babel-preset'], plugins: [ 'react-native-reanimated/plugin', // 必须放在第一个位置 // 其他插件(如react-native-paper/babel等)放在后面 ], };
要是漏加了这个插件,或者把它放在了其他插件之后,reanimated必然初始化失败;而Tab Navigation不依赖reanimated,所以能正常运行。
2. 版本兼容性不匹配
Drawer Navigation 6.x 要求 react-native-reanimated 的版本至少为2.x,如果你装的reanimated版本过低(比如1.x),或者版本过高与当前RN版本不兼容,都会触发错误。打开你的package.json核对:
- @react-navigation/drawer 6.x → 需搭配 react-native-reanimated ≥2.0.0
- 若你的RN版本在0.70以下,reanimated 3.x可能不兼容,需降回2.x系列
3. 修改配置后未重启Metro服务器
修改babel配置或重装依赖后,只清缓存没用,必须完全关闭Metro服务器再重新启动。操作步骤:
- 终端里按
Ctrl+C关闭Metro进程 - 执行
npx react-native start --reset-cache重启服务
4. iOS项目未执行Pod安装
如果是iOS环境,安装reanimated后必须进入ios目录执行Pod安装:
cd ios && pod install
很多人装完依赖直接跑项目,忘了这步,导致原生库未成功链接,进而触发初始化失败。
5. Android未开启Hermes引擎
reanimated 2.x及以上版本依赖Hermes引擎,若Android项目未开启Hermes,也可能出现初始化问题。检查android/app/build.gradle:
project.ext.react = [ enableHermes: true, // 必须设为true ]
修改后需清理项目:cd android && ./gradlew clean
内容的提问来源于stack exchange,提问作者MasterEnzo
相关产品推荐
相关产品推荐

