在React中,如果对同一个接口进行多次请求,但只得到一个请求结果,很可能是因为请求被缓存了。为了解决这个问题,可以在请求的URL后面加上一个唯一的参数,比如时间戳或者随机数,这样每次请求的URL都会不同,从而避免缓存问题。
以下是一个使用axios进行请求的例子,如何确保每次请求都是新的:
import axios from 'axios';
// 发送请求的函数
function fetchData(url) {
const uniqueParam = new Date().getTime(); // 使用当前时间戳作为唯一参数
const fullUrl = `${url}?timestamp=${uniqueParam}`; // 将时间戳作为参数添加到URL
return axios.get(fullUrl)
.then(response => response.data)
.catch(error => console.error('Error fetching data: ', error));
}
// 使用示例
fetchData('https://your-api-endpoint.com/data')
.then(data => console.log('Received data: ', data))
.catch(error => console.error('Error: ', error));
在上面的代码中,每次调用fetchData
函数时,都会生成一个唯一的时间戳并附加到请求的URL上,这样可以确保每个请求都是独一无二的,从而避免了因缓存导致只获取到一个请求结果的问题。