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

React Native点击图片跳转新页面报错:NAVIGATE未被导航器处理

问题原因

报错的核心是导航目标名称不匹配:

  • 在app.js的栈导航中,你给目标屏幕注册的名称是PostImage
  • 但在profile.js的openImage函数里,你用了文件路径./postImage作为导航目标,导航器找不到这个名称的屏幕,所以抛出错误。
修复步骤

1. 修正导航目标名称

修改profile.js中的openImage函数,把导航目标改成你在app.js里注册的屏幕名称PostImage:

const openImage = (image) => {
  navigation.navigate('PostImage', { image });
};

2. 确保navigation对象可用

如果你的profile.js是函数组件,要确保正确获取navigation对象:

  • 若组件是通过导航栈直接渲染的,navigation会作为props传入;
  • 若不是,需要导入useNavigation钩子:
import { useNavigation } from '@react-navigation/native';

// 在组件内部
const navigation = useNavigation();

3. 增强参数容错性(可选)

postImage.js中可以加个空值判断,避免因参数缺失导致的报错:

const PostImage = ({ route }) => {
  const { image } = route.params || {};

  if (!image) {
    return <View><Text>图片未找到</Text></View>;
  }

  return (
    <View style={styles.container}>
      <Image source={image} style={styles.image} resizeMode="contain" />
    </View>
  );
};
补充说明

导航器只会识别你在Stack.Screen中通过name属性注册的屏幕标识,和文件路径无关。所有导航操作都要使用这个注册的名称,而非文件路径或组件名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:00:24