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

如何修复React Navigation中undefined is not an object (evaluating 'navigation.push')报错

React Navigation报错原因与解决方案

该报错属于路由匹配失败/导航上下文丢失类问题,触发原因可逐一排查以下几点:

  • 路由名称大小写/拼写不匹配
    检查route.js中注册的目标页面name属性值,与navigation.navigate()中传入的第一个参数完全一致,注意该参数严格区分大小写,额外的空格、拼写错误、大小写不一致都会触发该报错。
  • Login组件未正确获取navigation属性
    只有Stack.Screen/Tab.Screen等路由组件直接配置的页面,默认会注入navigation属性。如果Login是其他页面的子组件,或者你没有从props正确解构该属性,调用时就会报错。
    非路由页面调用跳转可以使用useNavigation钩子获取导航对象,代码示例:
    import { useNavigation } from '@react-navigation/native';
    
    // 组件内部调用
    const navigation = useNavigation();
    // 跳转逻辑
    navigation.navigate('你注册的目标页面准确名称');
    
  • 导航容器未正确包裹路由树
    确认你项目根组件最外层已经包裹了NavigationContainer组件,所有路由相关的组件都在该容器的子层级内,否则会丢失导航上下文导致调用失败。
  • 嵌套导航跳转规则错误
    如果你使用了嵌套路由(比如栈导航嵌套标签导航),跳转子导航内的页面需要符合嵌套路由的跳转规则,不能直接传入子页面的名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:09:04