Reactjs 如何在使用expo image picker时添加图像类型和大小限制(例如,我只能选择jpeg类型的图像,最大内存为2000kB)

Reactjs 如何在使用expo image picker时添加图像类型和大小限制(例如,我只能选择jpeg类型的图像,最大内存为2000kB),reactjs,react-native,expo,Reactjs,React Native,Expo,我正在我的一个本地项目中使用图像选择器。现在,我需要在从图库中拾取图像或使用相机拍摄图像时添加一些限制 我只想选择jpeg类型的图像,它们的内存必须小于2000kB 是否可以使用世博会图像选择器?提前谢谢。你可以用这样的东西 const checkFileSize = async (fileURI: string) => { const fileSizeInBytes = await FileSystem.getInfoAsync(fileURI); re

我正在我的一个本地项目中使用图像选择器。现在,我需要在从图库中拾取图像或使用相机拍摄图像时添加一些限制

我只想选择jpeg类型的图像,它们的内存必须小于2000kB


是否可以使用世博会图像选择器?提前谢谢。

你可以用这样的东西

 const checkFileSize = async (fileURI: string) => {
        const fileSizeInBytes = await FileSystem.getInfoAsync(fileURI);
        return fileSizeInBytes;
    };
然后称之为:

   const pickImage = async (
        cb: Dispatch<React.SetStateAction<string>>,
        cbv: Dispatch<React.SetStateAction<boolean>>
    ) => {
        try {
            const result = await ImagePicker.launchImageLibraryAsync({
                mediaTypes: ImagePicker.MediaTypeOptions.Images,
                quality: 1,
            });

            if (!result.cancelled) {
                const fileSize = await checkFileSize(result.uri);
                if (fileSize.size && fileSize.size < 2000000) {
                    cb(result.uri);
                    cbv(true);
                } else {
                    throw new Error();
                }
            }
        } catch (err) {
            Alert.alert(
                i18n.t('failure'),
                i18n.t('imageSizeTooBig'),
                [{ text: 'OK' }],
                { cancelable: false }
            );
        }
    };
const pickImage=async(
cb:调度,
cbv:调度
) => {
试一试{
常量结果=等待ImagePicker.launchImageLibraryAsync({
mediaTypes:ImagePicker.MediaTypeOptions.Images,
质量:1,,
});
如果(!result.cancelled){
const fileSize=wait checkFileSize(result.uri);
if(fileSize.size&&fileSize.size<2000000){
cb(result.uri);
cbv(真);
}否则{
抛出新错误();
}
}
}捕捉(错误){
警惕,警惕(
i18n.t(“故障”),
i18n.t('ImageSizeToBig'),
[{text:'OK'}],
{可取消:false}
);
}
};

请解释您的答案,使其对社区更有价值。您能解释一下这一部分吗?“cb:调度,cbv:调度”