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

Expo从SDK 39升级到SDK 42后出现react-native-screens相关打包错误如何解决?

问题原因
  • 版本不匹配是问题的核心诱因,包含两个错误点:
    1. Expo SDK 升级到42后,react-native 依赖仍保留SDK 39对应的版本,未同步升级到SDK 42的匹配版本,导致原生模块解析逻辑异常
    2. 项目同时安装了@react-navigation/stack v5和@react-navigation/native-stack v6,两个不同大版本的导航栈对react-native-screens的接口要求存在冲突,3.4.0版本的react-native-screens无法同时适配两个版本的导航组件,TransitionProgressContext 模块找不到就是该冲突的典型表现。
修复步骤
    1. 同步react-native版本到Expo SDK 42对应的官方版本
      修改package.json中react-native字段为:
    "react-native": "https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz"
    
    1. 统一导航依赖版本,避免跨版本冲突
      如果你日常使用v5系列的导航栈,直接卸载v6版本的native-stack即可,执行命令:
    npm uninstall @react-navigation/native-stack
    # 用yarn的用户执行:yarn remove @react-navigation/native-stack
    
    如果你要使用v6版本的导航栈,将所有@react-navigation开头的依赖统一升级到v6适配版本即可。
    1. 清除缓存并重启项目
      先删除项目根目录下的node_modules文件夹、package-lock.json(yarn用户删除yarn.lock)文件,再依次执行:
    npm install # yarn用户执行yarn install
    expo start -c
    
  • 完成以上操作后打包错误即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:15:03