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

React Native页面跳转报错navigation.navigate及依赖缺失问题求助

React Native 路由跳转及依赖报错修复方案

问题1:TypeError: undefined is not an object (evaluating 'navigation.navigate') 跳转失败

故障原因

navigation.navigate的入参规则为路由注册时的name属性值,不是目标页面的文件相对路径;若属性透传链路存在问题也会导致navigation属性为undefined。

修复步骤

  • 确认App.js路由配置中AcceptedBookingScreen对应的Stack.Screen的name字段值,跳转时直接传该值,不要传文件路径:
    正确跳转代码示例:
    // 假设路由注册为 <Stack.Screen name="AcceptedBookingScreen" component={AcceptedBookingScreen} />
    navigation.navigate('AcceptedBookingScreen')
    
  • 若透传navigation后仍报undefined,可直接在NewOrderPopUp组件内通过useNavigation钩子获取实例,无需属性透传:
    import { useNavigation } from '@react-navigation/native';
    
    const NewOrderPopUp = () => {
      const navigation = useNavigation();
      // 跳转触发逻辑
      const handleJump = () => {
        navigation.navigate('AcceptedBookingScreen');
      }
      // 其余组件逻辑
    }
    

问题2:Error: Unable to resolve module react-native-safe-area-context 模块缺失

故障原因

@react-navigation/native 6.x版本依赖react-native-safe-area-context、react-native-screens两个对等依赖,仅安装导航核心包和栈导航包会导致依赖缺失。

修复步骤

  • 安装缺失的对等依赖:
    npm环境执行:
    npm install react-native-safe-area-context react-native-screens
    yarn环境执行:
    yarn add react-native-safe-area-context react-native-screens
  • iOS端额外执行pod安装:
    cd ios && pod install && cd ..
  • 清空开发服务缓存重启项目:
    npx react-native start --reset-cache
    之后重新编译运行项目即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 02:51:03