Javascript 如何使用“获取百分比”;onUploadProgress“;axios?

Javascript 如何使用“获取百分比”;onUploadProgress“;axios?,javascript,reactjs,axios,Javascript,Reactjs,Axios,我目前正努力从axios的onUploadProgress中获取百分比。下面的代码不会打印正确的百分比 我的问题是如何在List.js文件中访问percentage值 UsersApi.js importUsersList: (payload) => { const options = { method: 'POST', url: '/users/import ', data: payload, onUploadProgress: (

我目前正努力从axios
onUploadProgress
中获取百分比。下面的代码不会打印正确的百分比

我的问题是如何在List.js文件中访问
percentage

UsersApi.js

importUsersList: (payload) => {
    const options = {
      method: 'POST',
      url: '/users/import ',
      data: payload,
      onUploadProgress: (progressEvent) => {
        const { loaded, total } = progressEvent;
        let percentage = Math.floor((loaded * 100) / total);
        console.log('percentage => ', percentage);
      },
    };

    return API.request(options);
};
dispatch(importUsersList(file));
List.js

importUsersList: (payload) => {
    const options = {
      method: 'POST',
      url: '/users/import ',
      data: payload,
      onUploadProgress: (progressEvent) => {
        const { loaded, total } = progressEvent;
        let percentage = Math.floor((loaded * 100) / total);
        console.log('percentage => ', percentage);
      },
    };

    return API.request(options);
};
dispatch(importUsersList(file));

我假设您希望在
列表中显示上载进度

这意味着您需要在
列表的状态中引入例如
uploadedPercent:number
字段

由于看起来您正在使用某种减速器,因此需要调度一个操作,例如
setUploadProgress(uploadedPercent:number)
,该操作将更改您的状态

该操作需要在
onUploadProgress
中调度

然后,您可以将签名更改为
importUserList(有效负载,onUploadProgress)
并传递处理程序:

const onUploadProgress=(progressEvent)=>{
const{loaded,total}=progressEvent;
常数百分比=数学楼层((荷载*100)/总计);
调度(设置加载进度(百分比));
};
发送(导入列表(文件、onUploadProgress));