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

Expo39升级到42搭配React Navigation4出现createElement报错如何解决

问题根因

两个核心原因触发报错:

  1. AppLoading导入失效:从Expo SDK 40版本开始,AppLoading组件就从expo核心包中拆分到了独立的expo-app-loading包中,你当前使用的Expo 42版本已经完全移除了核心包中的AppLoading导出,所以代码里import { AppLoading } from 'expo'得到的是undefined,渲染该组件时就触发了你看到的类型无效报错,刚好对应报错提示的Check your code at App.js:89。
  2. 导航依赖版本不兼容:你当前依赖的react-navigation-stack@1.5.4版本过老,和Expo 42配套的React Native版本存在兼容问题,也可能额外触发同类组件undefined报错。
解决步骤
  • 第一步:安装适配Expo 42的独立AppLoading包
    执行以下命令自动安装对应适配版本,避免手动指定版本出现不匹配问题:
    expo install expo-app-loading
    
  • 第二步:修改App.js中的导入语句
    把原来的导入代码:
    import { AppLoading } from 'expo';
    
    替换为:
    import AppLoading from 'expo-app-loading';
    
    注意该包为默认导出,不需要加花括号包裹。
  • 第三步:升级React Navigation 4相关依赖到兼容版本
    执行命令升级到适配Expo 42的v4生态最新版:
    npm install react-navigation@^4.4.4 react-navigation-stack@^2.10.4
    
  • 第四步:清除缓存重启项目
    执行命令清理Expo本地缓存,避免旧缓存残留导致报错:
    expo start -c
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:30:03