实现思路
- 在
useEffect
中发起 fetch
请求。
- 创建一个
AbortController
实例,用于取消请求。
- 在
useEffect
的返回函数中调用 AbortController
的 abort
方法,以在组件卸载时取消请求。
代码示例
import React, { useEffect } from 'react';
const MyComponent = () => {
useEffect(() => {
const controller = new AbortController();
const signal = controller.signal;
const fetchData = async () => {
try {
const response = await fetch('your-api-url', { signal });
const data = await response.json();
console.log(data);
} catch (error) {
if (error.name === 'AbortError') {
console.log('请求已取消');
} else {
console.error('请求出错:', error);
}
}
};
fetchData();
return () => {
controller.abort();
};
}, []);
return <div>组件内容</div>;
};
export default MyComponent;