Reactjs Axios onUploadProgress在服务器实际发送响应之前立即返回1
当用户向服务器发送数据时,我试图在我的react原生应用程序中实现一个进度条。我正在尝试使用axios中的onUploadProgress选项获取post请求的进度,并将其映射到react native中的progress.Bar组件。onUploadProgress没有得到持续的进度更新,而是立即返回1(表示已完成上载),但直到几分钟后,我才真正从服务器得到响应。这会导致进度条立即填满,这显然会让用户感到困惑,因为响应尚未完成。我在谷歌上搜索过这个问题,找到了类似的帖子和帖子,但我似乎找不到解决办法。 下面是我的代码的样子:Reactjs Axios onUploadProgress在服务器实际发送响应之前立即返回1,reactjs,react-native,axios,Reactjs,React Native,Axios,当用户向服务器发送数据时,我试图在我的react原生应用程序中实现一个进度条。我正在尝试使用axios中的onUploadProgress选项获取post请求的进度,并将其映射到react native中的progress.Bar组件。onUploadProgress没有得到持续的进度更新,而是立即返回1(表示已完成上载),但直到几分钟后,我才真正从服务器得到响应。这会导致进度条立即填满,这显然会让用户感到困惑,因为响应尚未完成。我在谷歌上搜索过这个问题,找到了类似的帖子和帖子,但我似乎找不到解
//Post request to server...
const uploadVideo = async (id, uri, onUploadProgress) => {
const formData = new FormData();
formData.append("video", {
name: uri,
type: "video/mp4",
uri,
});
const result = await axios.post(`${endpoint}/${id}/videos`, formData, {
headers: {
"Content-type": "multipart/form-data",
},
onUploadProgress: function (progress) {
onUploadProgress(progress.loaded / progress.total);
},
});
return result;
};
//Function inside component that calls the POST function...
//media.uri comes from the user selecting a video from their camera roll using the expo image picker package
//setUploadProgress sets the value I use to pass the progress values to the Progress.Bar component
const submitVideo = (accountID) => {
const response = await uploadVideo(
accountID,
media.uri,
function (progress) {
setUploadProgress(progress);
};
//code to do something with the response from the server
}
POST请求本身正在工作,因为视频被正确地上传到服务器,并且我从服务器获得了预期的响应。正是这一过程给我带来了问题
谢谢所有能帮忙的人