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

React Native报TypeError: undefined is not an object错误如何排查解决

报错原因

该TypeError是React Navigation版本不兼容导致的API调用错误:你当前使用的@react-navigation/native属于5.x/6.x版本,而导入的createStackNavigator来自适配4.x旧版本的react-navigation-stack包,两者API规范完全不兼容。
旧版本的createStackNavigator要求传入路由配置对象routeConfigs作为入参,你没有传参直接调用,函数接收到的routeConfigs为undefined,执行Object.keys(routeConfigs)时就触发了该报错。

修复步骤
  • 第一步:卸载旧栈导航依赖,安装适配当前版本的栈导航包
    普通React Native项目执行:
npm uninstall react-navigation-stack && npm install @react-navigation/stack

Expo项目执行:

npx expo uninstall react-navigation-stack && npx expo install @react-navigation/stack
  • 第二步:修改App.js中的导入语句
    将原有导入:
    import { createStackNavigator } from "react-navigation-stack";
    替换为:
    import { createStackNavigator } from '@react-navigation/stack';
  • 可选补充修复:你当前NavOptions.js中配置了跳转到EatsScreen的逻辑,但该页面并未在栈导航中注册,点击第二个按钮会触发跳转错误,可先暂时移除该选项,或先创建EatsScreen页面并在Stack.Navigator中注册对应路由。

修改完成后重新启动项目即可解决该报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:54:05