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

React Native图片选择器uri弃用警告(SDK48)解决方法咨询

解决ImagePicker的uri弃用警告问题

这个警告是因为Expo ImagePicker从SDK 48开始调整了返回结果的结构:原来直接挂载在result上的uri字段被废弃,选中的资源统一放在assets数组中。你只需要调整获取uri的方式就能解决这个问题。

修改要点:

  • 图片选择未取消时,不再直接取result.uri,而是从result.assets数组中获取第一个元素(你的代码是单选场景),再从中提取uri
  • 顺便修正代码里的拼写错误:delte改成delete

修改后的完整代码:

const selectImage = async () =>{
    try {
        const result = await ImagePicker.launchImageLibraryAsync({
            mediaTypes: ImagePicker.MediaTypeOptions.Images,
            allowsEditing: true,
            aspect: [4, 3],
            quality: 0.5
        });
        
        if(!result.canceled){
            // 从assets数组中获取第一个选中资源的uri
            const selectedAsset = result.assets[0];
            setImage(selectedAsset.uri);
            saveToFile();
        } else {
            Alert.alert('Delete', 'Are you sure you want to delete the image', [
                {text:"Yes", onPress:()=> setImage(null)},{text:"No"} 
            ]);
        }
    } catch (error) {
        console.log("error reading an image");
    }
}

如果是多选场景,你可以遍历result.assets数组来处理每一张选中的图片。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:15:55