You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React-Native加载Bundle失败:无法读取属性'throwIfClosureRequired'求助

解决 React Native 红屏报错:Cannot read property 'throwIfClosureRequired'

这个报错我之前帮朋友排查过,大概率是 Metro 缓存冲突、依赖版本不兼容或者项目初始化时的残留问题导致的,给你整理几个实用的修复步骤,你可以挨个试试:

1. 重置 Metro 缓存并重启服务

新建项目后 Metro 缓存混乱是最常见的诱因,先把缓存清干净:

  • 关掉当前运行的 Metro 服务(按 Ctrl+C 终止)
  • 执行缓存重置命令启动 Metro:
    npx react-native start --reset-cache
    
  • 打开另一个终端,重新运行项目:
    npx react-native run-android # Android 项目用这个,iOS 换 run-ios
    

2. 排查 Node.js 版本兼容性

React Native 对 Node 版本有明确要求,如果你新建项目时自动拉取的依赖和之前项目的 Node 版本不匹配,就容易出问题:

  • 查看当前项目对应的 RN 版本要求的 Node 版本(可以看项目根目录的 .nvmrc 文件,或者 RN 官网对应版本的文档)
  • 用 nvm 切换到兼容版本(比如很多稳定版 RN 适配 Node 18.x):
    nvm install 18.17.0
    nvm use 18.17.0
    
  • 切换后删除旧依赖和锁文件,重新安装:
    rm -rf node_modules package-lock.json # 用 yarn 的话删 yarn.lock
    npm install # 或者 yarn install
    

3. 彻底清理依赖与构建文件

有时候依赖安装过程中会出现文件损坏,需要彻底重置:

  • 删除 node_modules 和锁文件后重新装依赖(步骤同上)
  • Android 项目额外清理构建缓存:
    cd android && ./gradlew clean && cd ..
    
  • iOS 项目清理 Pod 缓存并重新安装:
    cd ios && pod deintegrate && pod install && cd ..
    

4. 检查 React Native CLI 版本差异

全局安装的 CLI 和项目本地版本不一致也会引发奇怪的问题:

  • 查看全局 CLI 版本:
    react-native --version
    
  • 对比项目 package.json 里 react-native 的版本,如果差异较大,建议全程用 npx 执行命令(npx 会优先调用项目本地的 CLI 版本,避免全局版本干扰)

要是以上方法都没解决,你可以试试完全重新初始化一个极简项目,对比两个项目的配置差异,或者仔细看 Metro 启动时的终端日志,里面可能藏着更具体的错误线索。

内容的提问来源于stack exchange,提问作者Jonathan Ishii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:32:51