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

React Native使用AppLoading时报Element type is invalid错误如何解决

报错排查与解决方案

核心错误原因定位

  • 报错指向App.js第22行的<AppLoading />组件,错误提示元素类型为undefined,首先确认是AppLoading的导入方式错误:expo-app-loading包采用默认导出规则,你当前使用命名导出的写法(带花括号)导入,自然拿到undefined,触发组件类型校验失败。
  • 另外你的代码还存在隐藏问题:fetchFont函数没有返回Font.loadAsync的Promise对象,AppLoading的startAsync参数要求传入返回Promise的函数,不返回的话加载完成后onFinish回调不会正常触发,后续会出现页面卡住的问题。

修复代码

1. 修正AppLoading导入语句

将原有代码:

import {AppLoading} from 'expo-app-loading';

替换为默认导入写法:

import AppLoading from 'expo-app-loading';

2. 修正fetchFont函数,返回Promise

将原有fetchFont函数修改为:

const fetchFont = () =>{
  // 必须返回loadAsync的Promise实例,供AppLoading监听加载状态
  return Font.loadAsync({
    'glory':require('./assets/fonts/Glory.ttf')
  });
};

也可以使用箭头函数隐式返回的简化写法:

const fetchFont = () => Font.loadAsync({
  'glory':require('./assets/fonts/Glory.ttf')
});

两处修改完成后重新运行项目即可正常加载自定义字体。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:00:02