← 문제 목록
고급 React 100P

useEffect 경쟁 상태(race condition)

빠르게 다른 사용자를 선택하면 이전 사용자의 데이터가 늦게 도착하여 잘못 표시됩니다. 버그를 찾으세요:
JSX
function UserProfile({ userId }) {
  const [user, setUser] = useState(null);

  useEffect(() => {
    let cancelled = false;

    fetch(`/api/users/${userId}`)
      .then(res => res.json())
      .then(data => {
        setUser(data);
      });

    return () => {
      cancelled = true;
    };
  }, [userId]);

  return user ? <h1>{user.name}</h1> : <p>로딩중...</p>;
}

답변

로그인 후 제출하기
0명 풀이 · 정답률 0%