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

使用Expo Image Picker调用相册时返回值全为Undefined的问题

解决Expo Image Picker选图后返回结果全为undefined的问题

你的问题是由于Expo Image Picker版本迭代导致的API结构变化:v14及以上版本的返回结果格式和旧版完全不同,你用的是旧版代码逻辑,但安装的是新版库,所以会出现所有属性都为undefined的情况。

解决方案

1. 适配新版API(推荐)

如果你的expo-image-picker版本是v14.x及以上,修改代码如下:

const handleImageSelect = async () => {
  setImageLoading(true);
  const result = await ImagePicker.launchImageLibraryAsync({
    allowsEditing: true,
    quality: 1,
  });

  if (!result.canceled) {
    // 新版中选中的图片数据存放在assets数组内
    const selectedImage = result.assets[0];
    console.log(selectedImage);
    // 后续使用图片时取selectedImage.uri即可
  } else {
    alert('你没有选择任何图片');
  }
  setImageLoading(false);
};

2. 检查并配置权限

确保在app.json或app.config.js中添加必要的权限配置,否则可能出现权限问题导致返回异常:

{
  "expo": {
    "ios": {
      "infoPlist": {
        "NSPhotoLibraryUsageDescription": "需要访问你的相册来选择图片"
      }
    },
    "android": {
      "permissions": ["READ_MEDIA_IMAGES"]
    }
  }
}

3. 降级到旧版本(可选)

如果不想修改代码,可以将expo-image-picker降级到v13.x版本,运行以下命令:

# npm
npm install expo-image-picker@13.1.1

# yarn
yarn add expo-image-picker@13.1.1

降级后你原来的代码逻辑就能正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:42:14