React Query 是一个强大的 React 状态管理库,用于处理异步数据获取。它提供了许多功能,如自动请求缓存、轮询、分页等。当接口调用失败时,React Query 提供了 onError
回调函数,允许你在请求失败时执行自定义逻辑。
onError
回调,可以灵活地处理请求失败的情况。React Query 的错误处理主要通过 onError
回调函数实现。这个回调函数在请求失败时被调用,可以接收错误对象作为参数。
当你需要在接口调用失败时从服务器获取响应并进行处理时,可以使用 onError
回调。例如,你可能需要记录错误日志,或者尝试从备用服务器获取数据。
以下是一个使用 React Query 处理接口调用失败的示例:
import { useQuery } from 'react-query';
const fetchData = async () => {
const response = await fetch('https://api.example.com/data');
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
};
const MyComponent = () => {
const { data, error, isLoading, isError } = useQuery('myData', fetchData, {
onError: (error) => {
console.error('Error fetching data:', error);
// 在这里可以执行从服务器获取响应的逻辑
// 例如,尝试从备用服务器获取数据
fetchBackupData().then((backupData) => {
console.log('Backup data:', backupData);
});
},
});
if (isLoading) return <div>Loading...</div>;
if (isError) return <div>Error: {error.message}</div>;
return (
<div>
<h1>Data:</h1>
<pre>{JSON.stringify(data, null, 2)}</pre>
</div>
);
};
const fetchBackupData = async () => {
const response = await fetch('https://backup-api.example.com/data');
if (!response.ok) {
throw new Error('Backup server response was not ok');
}
return response.json();
};
onError
回调中,通过错误对象识别请求失败的原因。通过这种方式,你可以有效地处理接口调用失败的情况,并确保应用的稳定性和可靠性。
领取专属 10元无门槛券
手把手带您无忧上云