依赖项设为空数组
要让接口只执行一次,可以将useEffect 的依赖项设为空数组,这样 useEffect 就只会在组件挂载时执行一次,不会在组件更新时执行
useEffect(() => {
const fetchData = async () => {
const result = await axios.get('接口');
setData( result.data);
}
fetchData()
},[])
useRef 来保存一个标志位
使用 useRef 来保存一个标志位,确保 useEffect只执行一次。这种方法需要使用useRef来保存 isMountedRef.current 是否为 true 的状态,确保 useEffect 只执行一次。
const isMountedRef= useRef(false);
useEffect(() => {
if (!isMountedRef.current) {
isMountedRef.current = true;
const fetchData = async () => {
const result = await axios.get('接口');
setData( result.data);
}
fetchData();
}
},[])