gpt4 book ai didi

reactjs - 如何在get请求期间显示axios的进度(不是下载或上传)

转载 作者:行者123 更新时间:2023-12-03 13:53:32 25 4
gpt4 key购买 nike

我想要的是在 Axios 收到我的请求时显示进度条。 axios 包同时具有 onDownloadProgressonUploadProgress 来在下载或上传期间显示进度条,但在 get 请求期间没有进度条。我搜索了很多问题和文章,但它们总是关于下载/上传进度或 Vue.js,我无法理解如何在 React 中执行此操作。

我有以下代码下面(这不会工作,因为我没有下载)。

理想情况下,我会自己写;但我愿意考虑使用 axios-progress package如果有人可以解释一下如何将 loadProgressBar() 与我的 Axios 请求集成。

request = () => {
this.setState({error: null, results: []})
axios({
method: 'get',
url: process.env.REACT_APP_API_LOCALS,
responseType: 'json',
onDownloadProgress: (progressEvent) => {
var percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
this.setState({
loading: percentCompleted
})
},
})
.then(
(response) => {
console.log(response)
this.setState({
results: response.data.results,
error: null,
totalPages: Math.ceil(response.data.count / response.data.results.length)
})
}
)
.catch(
(error) => {
this.setState({
loading: null,
error: true
})
}
);
}

最佳答案

以下是在 React 中对我有用的内容:

const client = axios.create({
baseURL: 'http://localhost:10000/v1/client',
timeout: 20000
})

let result = await client.get('/fetchMeSomething', {
onDownloadProgress: progressEvent => {
const total = parseFloat(progressEvent.currentTarget.responseHeaders['Content-Length'])
const current = progressEvent.currentTarget.response.length

let percentCompleted = Math.floor(current / total * 100)
console.log('completed: ', percentCompleted)
}
})
.then(res => {
console.log("All DONE: ", res.headers)
return res.data
})

关于reactjs - 如何在get请求期间显示axios的进度(不是下载或上传),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54213601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com