Reactjs 用户选择图像后,使用获取API上载图像

Reactjs 用户选择图像后,使用获取API上载图像,reactjs,react-native,fetch-api,Reactjs,React Native,Fetch Api,我需要上传一个图像作为个人资料照片到服务器后,用户选择首选照片从画廊。 我将在这里解释这个场景: 第一个用户选择首选照片,我需要调用一个API来发送用户Id,它会将照片的另一个Id返回给我,然后我需要调用媒体上载API并发送用户Id、选定照片、文件夹名称(即用户和文件扩展名)。下面是我如何实现这一点的: constuserdata=useSelector(state=>state.user.userData) //一条通往画廊的路 常量allowAccess=async()=>{ 如果(Plat

我需要上传一个图像作为个人资料照片到服务器后,用户选择首选照片从画廊。 我将在这里解释这个场景: 第一个用户选择首选照片,我需要调用一个API来发送用户Id,它会将照片的另一个Id返回给我,然后我需要调用媒体上载API并发送用户Id、选定照片、文件夹名称(即用户和文件扩展名)。下面是我如何实现这一点的:

constuserdata=useSelector(state=>state.user.userData)
//一条通往画廊的路
常量allowAccess=async()=>{
如果(Platform.OS!=“web”){
const{status}=等待ImagePicker.requestMediaLibraryPermissionsAsync();
如果(状态!=“已授予”){
警报('抱歉,我们需要摄像头滚动权限才能执行此操作!');
}否则{
pickImage()
。然后((imageUri)=>{
getUploadId(userData.id)
.那么(
上传媒体(userData.id,imageUri)
)
})
}
}
}
const getUploadId=(userId)=>{
返回轴
.post(“**api_url**”{
“id”:用户id
})
。然后(响应=>{
//响应。数据就是产品
const uploadId=response.data
log('这是upload id',uploadId)
返回上传ID
})
.catch(错误=>{
//error.message是错误消息
console.log(错误消息)
})
}
const uploadMedia=(用户ID,图像文件)=>{
返回轴
.post(“**api_url**”
, {
“文件名”:用户ID,
“FormFile”:图像文件,
“FolderName”:“用户”,
“文件扩展名”:“.jpg”
})
。然后(响应=>{
const res=response.data
})
.catch(错误=>{
//error.message是错误消息
console.log(错误消息)
})
}
const pickImage=async()=>{
让结果=等待ImagePicker.launchImageLibraryAsync({
mediaTypes:ImagePicker.MediaTypeOptions.All,
允许编辑:对,
相位:[4,3],
质量:1,,
});
const imageUri=result.uri
返回imageUri
};

媒体上传给我的状态码是500,我怎么处理?任何帮助都将不胜感激。

在异步函数中使用
return
不是有效的语句,因为异步函数将始终返回
Promise
,您需要将api调用函数嵌套在彼此的函数中callback@VáclavRyska Umm..比如如何?没有检查完整性,如果这在语法或变量方面有效,但通常应该是这样的: