#author("2023-09-09T17:49:38+09:00","default:ryuichi","ryuichi")
#author("2023-09-09T17:50:20+09:00","default:ryuichi","ryuichi")
* APIリクエストの重複を防ぐ [#ze671910]



 import { useState, useEffect } from 'react';
 import { fetchBio } from './api.js';
 
 export default function Page() {
   const [person, setPerson] = useState('Alice');
   const [bio, setBio] = useState(null);
 
   useEffect(() => {
     let ignore = false;
     setBio(null);
     fetchBio(person).then(result => {
       if (!ignore) {
         setBio(result);
       }
     });
     return () => {
       ignore = true;
     };
   }, [person]);

- React公式より https://react.dev/reference/react/useEffect#fetching-data-with-effects
- 上のコードでuseEffect()のfetchBio()のAPIリクエストが終了する前にもう一度useEffect()が呼ばれたら、
- 1回目のfetchBio()のsetBio()は実行されず、
- 2回目のfetchBio()のsetBio()が実行される

** 参考 [#b415e8ae]
https://react.dev/reference/react/useEffect#fetching-data-with-effects


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS